실행결과 응용 프로그램 simpleApp.c디바이스 드라이버 simple_dev.cdevice file open[13895.005913] openApp : write something life is good 12bytes[13895.009107] simple_write [13895.013561] DEV : read something [13895.018762] life is good 12bytesApp : read something life is good 12bytes[13895.023354] simple_read [13895.027854] DEV : write something [13895.033086] life is good 12bytesioctl function call ret = 0[13895.03..
작동은 아래 포스팅 처럼 동작합니다. 좀 부족함 점이 많지만 공개합니다. [Android/프로그래밍] - IntentService 구현 중 2..( 안드로이드 백그라운드 서비스) http://webnautes.tistory.com/664 MainActivity.java package com.webnautes.backgroundserviceexample; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.widget.TextView; import android.widget.Toast; public class MainActivity..
라이브러리 설치 https://github.com/shirriff/Arduino-IRremote 에 있는 라이브러리를 다운로드 받는다. https://github.com/shirriff/Arduino-IRremote/archive/master.zip 를 클릭하면 ZIP압축파일로 다운로드 받을 수 있다. 압축을 풀은 후.. C:\Users\webnautes\Documents\Arduino\libraries 위치에 붙여 넣었다. 그러면 아두이노 IDE에서 해당 라이브러리와 예제를 사용할 수 있다. 그리고 나서 충돌을 피하기 위해 C:\Program Files (x86)\Arduino\librarie\ RobotIRremote를 삭제한다. 그리고 아두이노 IDE를 다시 실행해야 반영이 된다. 아래와 같이 TS..
세븐 세그먼트에는 두 가지 타입이 있는데 연결방식이 차이가 있습니다. Anode 타입의 경우 COM 2개와 DP를 VCC에 연결하고 Cathode의 경우에는 그라운드를 연결해주면 됩니다. 세븐세그먼트가 Anode의 경우 연결한 예시입니다. 아래 그림에서 G는 5V가 아닌 D6에 연결해야 합니다. 동작방식의 차이는 Cathode의 경우 HIGH 신호를 준 곳이 켜지지만 Anode의 경우에는 LOW신호를 준 경우에 켜집니다. 아래 표는 Anode의 경우를 나타낸 것입니다. abcdefg0LOWLOWLOWLOWLOWLOWHIGH1HIGHLOWLOWHIGHHIGHHIGHHIGH2LOWLOWHIGHLOWLOWHIGHLOW3LOWLOWLOWLOWHIGHHIGHLOW4HIGHLOWLOWHIGHHIGHLOWLOW5LO..
SQLite 설치 # sudo apt-get install sqlite3. 데이터베이스 생성 커맨드 라인으로 DB를 만들고 테이블 추가가 가능하지만 편하게 사용해볼려고 클라이언트 프로그램을 찾았다. 애초에는 보드에 클라이언트를 바로 설치해서 사용해 볼려다가 SQLite가 파일 기반의 데이터베이스라는 것을 알고는 번거롭더라도 피시에서 생성해서 복사해 사용하는 방식을 사용해보기로 했다. http://sqlitestudio.pl/?act=download 에서 리눅스 버전을 다운로드 후.. 압축 풀어서 실행.. SQLite가 파일 기반 데이터 베이스라서 윈도우버전을 설치해서 데이터베이스를 생성 후 복사해서 사용해도 됨. webnautes@virtual-machine:~$ wget http://sqlitestud..
PWM은 전압레벨을 제어 하여 아날로그 출력과 유사한 결과를 만들어 낼 수 있도록 해줍니다.디지털 출력 라인을 매우 빠르게 껐다 켰다 함으로써 전압을 결정 할 수 있습니다.예를 들어 아두이노의 디지털 라인은 0또는 5V의 전압을 출력할 수 있습니다. 만약 PWM을 Duty Cycle 50%로 설정한다면 평균 출력 전압은 2.5V가 되고 25% duty cycle이라면 출력은 1V가 됩니다. PWM은 아두이노 디지털 핀에서 전압을 제어 할 수 있도록 해주지만 모터를 제어하기 하기에는 전류의 제약이 있습니다. 마이크로 컨트롤러가 제공할 수 있는 전압보다 모터가 더 큰 전압을 요구하기 때문에 마이크로컨트롤러의 출력핀으로는 모터를 동작시키는데 무리가 있습니다. 그리고 또한 DC모터의 회전 방향을 조정하기 위해서..
밖에 나왔다가 아두이노 확인할게 있는데 들고 온게 없어서 혹시나 해서 찾다보니 시뮬레이터라는게 있네요.. 찾는 부품이 없어서 결국 확인은 못해보고 LED 켜는 것만 해봤는데 참 신기합니다... 현재 태스트 해본건 웹 상에서 시뮬레이터를 돌려볼 수 있는 아래 사이트로 무료로 가입하면 테스트 해볼 수 있습니다. http://123d.circuits.io/ 아래 화면은 실제로 돌려본 화면인데 부품들을 연결하고 아래쪽에 코드를 작성해주고 실행시켜보니 LED가 동작합니다. 괜찮긴 한데 웹상이라 좀 반응이 느린 감도 있지만 .. 한번쯤 사용해 볼만 한거 같습니다..
노트북에 USB TO SERIAL을 이용해서 연결된 장비의 경우 시리얼포트가 고정되어 있지 않을 경우도 있고.. 고정되더라도 COM1이 아니라 엉뚱한 숫자로 매번 접속할 때 마다 장비에서 사용하는 포트를 변경해가며 접속하는게 번거로워서 사용가능한 시리얼 포트 정보를 가져오는 방법을 찾아봤습니다. http://stackoverflow.com/questions/1388871/how-do-i-get-a-list-of-available-serial-ports-in-win32 에 시리얼 포트 정보를 얻어 올 수 있는 방법들을 나열해놓았는데 그 중에서 레지스터 값을 읽어오는 방법으로 결정하고 방법을 찾았습니다. http://www.devpia.com/MAEUL/Contents/Detail.aspx?BoardID=5..
참고한 원본 글은 http://arduino.cc/en/Tutorial/BlinkWithoutDelay 입니다. 두 가지 일을 동시에 실행시키려고 하는 경우 delay()함 수를 사용하게 되면 원하는 결과를 얻지 못할 수 있습니다. 예를 들어 LED를 깜박이게 하려고 delay함수를 사용하면 delay 함수 시간 동안 프로그램을 정지시키기 때문에 그 때 버튼을 누르는 경우 놓치게 됩니다. 그래서 delay함수를 사용하는 대신에 시간을 측정합니다. 이전 시간을 기록해두고 현재시간을 계속 체크해서 일정 시간이 경과했다면 LED의 상태를 바꾸어 주고 현재 시간을 기록해둡니다. 이 과정을 반복함으로써 LED는 깜박이게 됩니다. 별도의 하드웨어 추가없이 아두이노 Uno의 13번 핀에 연결되어 있는 내장되어 있는 ..
아날로그 값을 읽어와서 전압값으로 변환 후 시리얼로 출력하는 예제입니다. 참조한 원본 글은 http://arduino.cc/en/Tutorial/ReadAnalogVoltage 입니다. 가변저항기의 양끝핀을 각각 5V와 그라운드에 연결해주고 가운데 핀은 아날로그0번에 연결합니다. 가변저항기를 좌우로 돌리면 저항값이 변하게 되는데 그에 따라 가운데 핀의 전압이 바뀌게 됩니다. 가변저항기의 5V가 연결된 핀 쪽으로 다돌리면 저항이 0에 가까워져서 가운데 핀에서는 5V의 전압이 됩니다. 반대로 가변저항기의 그라운드가 연결된 핀 쪽으로 다돌리면 저항이 10K옴에 가까워져서 가운데 핀에서는 0V의 전압이 됩니다. 아두이노의 아날로그-디지털 컨버터에 의해서 0~5V사이의 전압은 0~1023 사이의 값으로 변환됩니다..