Arduino 와 Android 디바이스와의 블루투스 통신을 하기 위하여 다른 모듈 대비 저렴한 HC-06 을 사용하였다. HC-06 블루투스 모듈은 블루투스 2.0 을 사용하고 슬레이브 모드(마스터 모드와 슬레이브 모드가 있다. 슬레이브 모드는 기기를 한 대 밖에 연결하지 못 한다. 관련 설명 페이지)만을 사용하며 가격이 다른 모듈에 비해 비교적 저렴한 것이 특징이다. 또 관련 자료도 많이 접할 수 있다. 옥션 같은 곳에서 12,000 원대에 구할 수 있지만 이베이에서는 국내 판매 가격보다 훨씬 저렴한 가격으로 구할 수 있다. 그냥 HC-06 알맹이만 있는 녀석은 4$~5$ 정도 한다. 다만, 배송비의 압박이 만만치 않다. 나는 5v 로 사용할 수 있는 HC-06 시리얼 모듈을 구입하였다. 모듈을 구입..
글 작성중...
우선 테스트 영상. 첫 번째 실습부터 삽질이다. 칩 두이노에 LED 와 스위치를 연결하여 스위치를 한 번 누르면 LED 가 켜지고 다시 한 번 누르면 깜빡 거리고 다시 한 번 누르면 더 빨리 깜빡거리고 마지막으로 꺼지는 것을 만들고자 하였다. 마치 자전거용 전조등처럼 말이다. 추후에 자전거 전조등 자작을 염두에 둔 실습이었는데, 스위치에 좋지 않은 문제가 하나 있었다. 바로 기계식 스위치가 갖고 있는 문제인 바운스 현상이라 하는데, 스위치 내부에 스프링위에 올라간 접점이 붙거나 떨어질때 탄성으로 인하여 한 번 더 붙거나 하는 현상이 다. 아래 그림을 보면 이해가 쉬울 것 이다. 스위치 바운스. 처음에는 본인 직업인 소프트웨어 개발자 답게 코딩으로 딜레이를 주는 방식으로 해결해볼려고 했는데 아무래도 물리적..
요즘 즐겨보는 간행물인 Make 에 보면 아두이노는 꼭 빠지지 않는 단골 소재다. 이 잡지를 보면서 항상 아두이노에 대하여 감탄해왔다. 그리고 최근 결정적으로 아두이노에 입문하게 되게 해준 계기가 있었는데, 바로... 이 녀석들 이다.. 스노보드와 자전거가 취미인 내게 고글에 속도가 디스플레이 된다는 것이 큰 매력으로 다가왔다. 하지만 가격이 적어도 한국 돈으로 40만원 이상 하는 것들이라 가난한 월급쟁이인 저는 좌절 할 수밖에 없었다. 하지만 그 순간! 아두이노가 머릿속에 떠올랐다! 그리고 아두이노와 기기들에 대하여 조사를 해 본 결과 웨어러블 기기를 만드는데 딱 좋은 사이즈인 Cheapduino 라는 좋은 제품을 발견할 수 있었다. 요즘 많이 사용하는 아두이노 우노 R3에 비하여 스팩과 퍼포먼스가 많..
1. AndroidManifest.xml 파일에서 화면 회전을 막고자 하는 해당 액티비티의 엘리먼트에 다음과 같은 속성을 추가. android:screenOrientation="landscape" android:screenOrientation="portrait" 2. Activity 의 public 메소드인 setRequestedOrientation 사용. 런타임 환경에서 강제로 화면을 회전시킬 수 있다. setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
앱을 실행하자마자 아래와 같은 이미지를 띄우고 대략 2~3초 뒤에 메인 화면으로 넘어가는 동작을 구현해 보겠습니다. 우선 가장 무난한 페이스북 인트로 화면을 예제로 잡아보겠습니다. 우선 아래와 같이 인트로로 사용할 이미지를 준비합니다. 저는 가장 무난한 페이스북 이미지에 나인패치를 입혀서 적용했습니다. 화면을 다 덮는 이미지를 사용해도 되지만 intro 화면에 사용될 Drawable 을 정의한 xml 파일을 사용하는 것이 좋습니다. 우선 values 폴더의 style.xml 파일에 다음과 같은 테마를 하나 추가시켜줍니다. 액션바와 타이틀을 제거하고 인트로에 사용될 배경 이미지를 출력하는 테마입니다. 그리고 AndroidManifest.xml 에서 Intro 를 보여줄 Activity 에 해당하는 엘리먼트..
ActionBar 의 View 를 가져올 수 있으며 아래 코드는 Activity 내부에서 사용한 예. private View getActionBarView() { Window window = getWindow(); View v = window.getDecorView(); int resId = getResources().getIdentifier("action_bar_container", "id", "android"); return v.findViewById(resId); } 이렇게 가져온 ActionBar 의 view 를 이용하여 애니메이션등을 구현할 수 있습니다.
1. manifest.xml 파일의 manifest 엘리먼트 안에 아래와 같이 추가해준다. 2. application 엘리먼트 바로 안에 다음과 같이 추가해준다. 3. File->New->JUnit Test Case 를 선택하고, 상단 라디오 버튼중에 New JUnit 4 test 를 선택한다. Name 에 적당한 이름을 입력하고 Finish 버튼을 눌러준다. 4. 새로 생성된 JUnit 테스트 케이스를 다음과 같이 편집하고 이 곳에 테스트 코드를 삽입한다. import org.junit.Test; import android.app.Activity; import android.app.Instrumentation; import android.test.ActivityInstrumentationTestCase..
자주쓰는 함수라 매번 코딩하기 귀찮아서 올려 놓는다. 아래는 4개의 길이를 갖는 byte 배열을 int 로 바꾸거나 int 를 4개의 길이를 갖는 byte 배열로 바꾸는 것이다.// 아래의 방법 외에 다음과 같이 간단한 방법도 존재한다. :// byte[] byteArray = ByteBuffer.allocate(4).putInt(value).array(); public byte[] intToByteArray(int value) { byte[] byteArray = new byte[4]; byteArray[0] = (byte)(value >> 24); byteArray[1] = (byte)(value >> 16); byteArray[2] = (byte)(value >> 8); byteArray[3] = ..
안드로이드1 : https://medium.com/marojuns-android/
안드로이드의 Task 내부에는 여러 액티비티들을 갖고 있으며 이 것들은 동일한Affinity 값을 갖고 있고 하나의 스택위에 유지되고 있다. 우선 첫 번째로 동일한 Task 내에서 액티비티를 시작할 때, 자주 쓰이는 플래그값에 대하여 알아보겠다. 아래 설명되는 옵션들은 아래와 같이 사용할 수 있다. Intent intent = new Intent(this, activity.class); intent.setFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); startActivity(intent); 참고로 startActivity 는 Context 의 메소드이다. 실제로 어떻게 동작하는지 궁금하여 아래 스샷과 같이 실험 앱을 만들어보고 정리해 보았다. (코드를 너무 날림으로 만들어서 공개..
- Total
- 461,400
- Today
- 101
- Yesterday
- 77
- Android
- 이더넷
- 병렬 프로그래밍
- oled
- HC-06
- 부트로더
- activity
- 안드로이드
- Cheapduino
- ndk
- noidemcu
- 칩두이노
- WS2812B
- 블루투스
- bluetooth
- 가습기
- json
- 안드로이드 개발
- Iot
- arduino
- Java
- NeoPixel
- 침블락
- 알리익스프레스
- ENC28J60
- 스마트 무드등
- ATtiny85
- 개발
- 원정보드
- 아두이노