FileObserver 안드로이드에서 제공하는 파일 모니터링을 위한 API 인 FileObserver 에 대하여 알아보겠다. FileObserver 는 안드로이드 내부에 접근할 수 있는 각각의 파일과 디렉토리의 접근이나 변경에 대한 이벤트를 비동기적으로 받아올 수 있다. 이 클래스는 리눅스 커널에서 제공하는 파일 감시 모듈인 inotify (클릭시 위키로 이동) 의 네이티브 API 들을 JNI 를 통해서 호출한다. FileObserver 를 사용하면 내부적으로 쓰레드 하나가 (static 으로)생성된다. 우선 기본 사용법에 대하여 알아보자. (참고 페이지 - 안드로이드 레퍼런스 : http://developer.android.com/reference/android/os/FileObserver.html) ..
아두이노 에서 사용하는 마이크로 컨트롤러는 작은 양의 RAM 공간을 갖고 있습니다. 아두이노 우노 에서 사용하는 ATmega328 계열은 고작2Kbyte 의 공간을 갖고 있으며 기본적으로 200에서 300byte 정도의 메모리가 소비되는 것을 볼 수 있었습니다. 스케치 코드를 짜면서 무분별한 변수 선언이나 지나친 메모리 할당은 아두이노 스케치가 오동작 할 수 있는 상황을 야기시킬 수 있기 때문에 코딩중 고심하게 만드는 부분중에 하나입니다. 심지어 메모리 누수(Memory leak) 버그가 발생하면 코딱지 만한 메모리 공간은 쓰레기로 가득 찰 것입니다. 다행히도 아두이노에 남아있는 메모리 사용량을 실시간으로 체크할 수 있는 방법이 존재합니다. 그리고 그것을 라이브러리로 쓰기 편하게 만들어 주신 분도 있습니..
우선 해외 사이트 중에 Attiny85 에 아두이노를 올리는 것에 대해 자세히 나와있는 아주 좋은 포스팅이 하나 있다.http://highlowtech.org/?p=1695 하지만, 이 포스팅을 보고 순서대로 따라해 보았지만 동작하지 않았다. 대략 원인은 위 포스팅에 나와있는 아두이노 우노 R2 에서는 잘 올라가지만 직접 테스트 해본 아두이노 우노 R3 에서는 문제가 발생하는 것으로 예상하고 있다. 물론 아두이노 (호환)나노, 아두이노 (호환)미니 에서도 동작하지 않았다. 위에 링크로 올린 http://highlowtech.org/?p=1695 에서는 아주 간단한 방법으로 부트로더도 올리고 Blink 예제도 올리고 있지만, 앞서 언급한대로 잘 되지 않으므로 정공법으로 부트로더를 올리고 스케치 프로그램을 ..
Exchanger 는 뜻 그대로 쓰레드상에서 두 개의 인스턴스를 교환해주는 역할을 한다. 만약 한쪽의 쓰레드에서만 교환 메소드를 호출한다면 다른쪽에서 교환 메소드를 호출하기 전까지 대기하고 있는데. 이 클래스는 java 의 gc 와 같은 동작에서 사용할 수 있다. 예를 들어 설명하면 다음과 같다. (이해를 돕기 위하여 '요청' 이라는 표현을 사용하였다. 정확히는 교환 대상이 되는 인스턴스 값을 인자로 하는 교환 메소드 호출이다.) 1. 데이터를 '스택에 쌓는 쓰레드' 와, '스택을 비우는 쓰레드' 가 있다. 이 두 개의 쓰레드에는 각각의 '스택' 이 있다. 2. 데이터를 '스택에 쌓는 쓰레드' 는 계속해서 데이터를 자신의 '스택' 에 추가한다. 이 동작을 반복하다 스택이 가득차면 '스택' 교환을 요청하고..
이전 포스팅 '저렴한 RGB LED(WS2812B) 구임/사용기' 라는 포스팅에서 WS2812B 에 대하여 잠깐 소개한적이 있다. 간단한 사용 방법에 대하여 소개를 하지 않아서 본격적으로 사용법에 대하여 소개를 하려고 한다. 우선 구입은 Aliexpress 와 같은 해외 사이트를 추천한다. 글을 올린 시간 기준으로 100개에 약 18달러정도 한다. (http://www.aliexpress.com/premium/WS2812B-100pcs-Heatsink.html?ltype=wholesale&d=y&origin=y&SearchText=WS2812B+100pcs+Heatsink&isPremium=y&initiative_id=SB_20141005041503&isViewCP=y&catId=) 뿐만 아니라 LED ..
우선 CRC 와 CRC CITT 에 대한 설명은 아래 두 사이트에서 볼 수 있다. CRC(cyclic redundancy check) 에 관한 설명, 위키 링크(클릭)CRC16-CITT 에 대한 설명과 코드 페이지 링크(클릭) 보통 구글링을 하면 나오는 CRC 코드는 CRC 값 계산을 위한 테이블을 미리 생성하거나 코드에 포함시키기 때문에 아두이노에 올리기에 부담스럽다. 아두이노 UNO 의 메모리 크기는 달랑 2Kbyte 밖에 안 되는데 CRC 값 계산을 위한 테이블은 이론상 512byte 씩이나 되기 때문이다. (실제로는 좀 더 작은 크기를 점유하고 있다.) SRAM을 직접 연결하거나 메모리 쉴드를 달면 조금 나아지겠지만, 일단 그냥 올리기에는 부담스러운 것이 사실이다. 그래서 인터넷 이곳 저곳에서 긁..
- Total
- Today
- Yesterday
- Iot
- ndk
- 가습기
- Java
- WS2812B
- 침블락
- Android
- json
- HC-06
- 스마트 무드등
- 블루투스
- ATtiny85
- 안드로이드 개발
- Cheapduino
- noidemcu
- 아두이노
- NeoPixel
- oled
- 안드로이드
- activity
- 칩두이노
- 이더넷
- ENC28J60
- 병렬 프로그래밍
- ESP8266
- bluetooth
- arduino
- 알리익스프레스
- 개발
- 부트로더
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 |
| 12 | 13 | 14 | 15 | 16 | 17 | 18 |
| 19 | 20 | 21 | 22 | 23 | 24 | 25 |
| 26 | 27 | 28 | 29 | 30 | 31 |