DS18B20 온도센서로 측정한 값을 Nokia 5110 LCD에 출력하는 것을 해보았습니다..... 왼쪽사진은 현재 27도를 출력한 것이며 ... 손가락으로 온도센서를 살짝 대고 있으면 온도가 상승하여 오른쪽 사진처럼 29.5도 까지 올라갔습니다... 우선 온도 센서를 아래 회로도처럼 연결해주었습니다. 그리고 Nokia 5110 LCD는 아래 글에 나온 것 처럼 연결해주었습니다.[임베디드/Arduino Uno] - Nokia 5110 LCD를 arduino uno에 연결하기 그리고 온도 센서때문에 필요한 라이브러리를 설치해줍니다. 아래에서 라이브러리를 다운로드 받아서 압축을 푼 후 폴더를 복사해서 http://download.milesburton.com/Arduino/MaximTemperature/Da..
원래 노키아 핸드폰에서 사용되던 LCD인데 PCD8544 컨트롤러를 사용하고 있습니다. 그래픽 LCD라 간단한 그래픽 출력도 가능한데 가로 x 세로가 84x48의 해상도를 가집니다. 문자를 출력해보니 가로 12자가 들어가고 6줄이 가능합니다.. 아래 5개 핀은 순서대로 아래처럼 연결해주고아두이노 7번핀 ---- LCD 3번핀아두이노 6번핀 ---- LCD 4번핀아두이노 5번핀 ---- LCD 5번핀아두이노 4번핀 ---- LCD 6번핀아두이노 3번핀 ---- LCD 7번핀 LCD8번핀과 LCD1번핀은 3.3V에 같이 연결해주고 LCD2번핀은 GROUND에 연결해주었습니다... https://github.com/sparkfun/GraphicLCD_Nokia_5110/tree/master/Firmware/N..
게임 플레이시 안드로이드에 있는 센서를 이용하여 플레이하는 것이 어떻게 동작하는지 알아보기 위해..태스트 앱을 만들었습니다. 향후 로봇 제어용으로 사용하려고 구현해놓았는데 제대로 동작했으면 좋겠습니다... 안드로이드폰을 수평으로 놓아서 pitch 값이 0이되거나 안드로이드폰 상단을 아래로 향하게 해서 pitch값이 양수가 되면 로봇에 STOP신호를 주도록 작성할 계획입니다. 안드로이 폰을 들어서 보면 상단이 위로 향하게 되어 pitch값은 음수가 되고 이때 로봇에게 GO 명령을 줄 계획입니다.. 이제 스마트폰을 게임플레이하던거 처럼 좌우로 기울이면 로봇에게 해당 방향으로 전진하도록 할 계획입니다... AndroidManifest.xml파일에 다음 퍼미션 두 가지를 추가해주어야 합니다.. 그리고 다음은 메..
두번째 예제에 있던 오타 및 오류를 잡았습니다. 테스트에 사용한 이미지입니다. openCV 3.0부터 라벨링 알고리즘이 추가되었습니다.. 이미지를 라벨링하고 원하는 라벨을 색으로 표현한다든가.. 각각의 영역들을 박스치는 것등이 쉽게되네요.. 해당 영역의 크기도 각각 계산되서 나옵니다.. 자세한건 아래 소스코드를 읽어 보세요... 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162#include #include #include #include #include using namespace cv; using namespace std; int main() {..
허프변환에 대해 좀더 알고 싶으시면 아래 글을 참고하세요...[그래픽스&컴퓨터비전/구현한 것들] - Hough Line Transform 구현 #include #include #include #include using namespace cv; using namespace std; int main(int argc, char**argv ) { Mat img_original = imread("indoor1.jpg", IMREAD_COLOR ); Mat img_edge, img_gray; //그레이 스케일 영상으로 변환 한후. cvtColor( img_original, img_gray, COLOR_BGR2GRAY); //캐니에지를 이용하여 에지 성분을 검출합니다. Canny( img_gray, img_edge,..
출처http://lakjeewa.blogspot.kr/2015/01/android-client-server-chat-application.html package com.example.webnautes.client; import android.app.Activity;import android.os.AsyncTask;import android.os.Build;import android.os.Bundle;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.TextView; import java.io.BufferedReader;import java.io.IOException..
#include #include #include #include #include #include #include #include #include #include #include #include #include struct thread_data{ int fd; char ip[20]; }; void *ThreadMain(void *argument); // get sockaddr, IPv4 or IPv6: void *get_in_addr(struct sockaddr *sa) { if (sa->sa_family == AF_INET) { return &(((struct sockaddr_in*)sa)->sin_addr); } return &(((struct sockaddr_in6*)sa)->sin6_addr); }..
윈도우(일정 범위)를 모든 방향으로 이동시키며 픽셀의 강도 변화를 측정함으로써 윈도우 내의 특징을 발견할 수 있다. 평평한 영역에서는 모든 방향으로 픽셀 강도 변화가 없다.에지에서는 에지의 방향따라 픽셀 강도 변화가 없고 에지와 수직방향으로 픽셀 강도 변화가 있다.코너에서는 모든 방향에 대해 강한 픽셀 강도 변화가 존재한다. 윈도우내의 좌표(x,y)에 있는 픽셀 강도와 (u,v)만큼 윈도우를 시프트 시켰을때 픽셀 강도의 변화량은 다음 식으로 측정한다. Window function은 직사각형 윈도우이거나 가우시안 윈도우를 사용하며 윈도우 아래의 픽셀들에 가중치를 주는 용도로 사용되어 진다. 평평한 영역에서는 강도 변화가 거의 없기 때문에 위 식은 0에 가까울 것이다.특징을 추출할 수 있는 것들이 많은 영역..
버튼을 누르는 순간 폴링 에지 인터럽트가 발생하여 callback함수가 실행됩니다. import RPi.GPIO as GPIO def callback(channel): print "falling edge detected from pin %d"%channel GPIO.setmode(GPIO.BOARD) GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP ) GPIO.add_event_detect( 11, GPIO.FALLING, callback=callback, bouncetime=300) while True: pass
LED의 밝기가 점점 밝아지다가 다시 점점 어두워지는 것을 세번 반복하는 예제입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode( GPIO.BOARD ) #12번핀은 출력모드로 설정 GPIO.setup(12, GPIO.OUT) pwm = GPIO.PWM(12,50) #50hz pwm.start(0) for i in range(0,3): for dc in range(0,101,5): pwm.ChangeDutyCycle(dc) time.sleep(0.1) for dc in range(100,-1,-5): pwm.ChangeDutyCycle(dc) time.sleep(0.1) pwm.stop() GPIO.cleanup()