LED는 12번핀에 연결하고 버튼은 11번핀에 연결한 상태입니다. 이제 버튼을 누를 때마다 LED가 켜지도록 만들 것입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode( GPIO.BOARD ) #12번핀은 출력모드로 설정 GPIO.setup(12, GPIO.OUT) #11번핀은 입력모드로 설정 GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: input_state = GPIO.input(11) if input_state == False: GPIO.output(12, GPIO.HIGH) else: GPIO.output(12, GPIO.LOW) time.sleep..
버튼의 한쪽은 그라운드인 14번핀에 연결하고 다른 한쪽은 11번핀에 연결합니다. 버튼을 누르게 되면 화면에 'Button pressed'라고 출력됩니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time GPIO.setmode( GPIO.BOARD ) GPIO.setup(11, GPIO.IN, pull_up_down=GPIO.PUD_UP) while True: input_state = GPIO.input(11) if input_state == False: print( 'Button pressed' ) time.sleep(0.5)
6번 핀에 LED 음극을 연결하고 12번 핀에 LED의 양극을 연결합니다. LED가 3번 반복해서 깜박이도록한 예제입니다. #-*- coding: utf-8 -*- import RPi.GPIO as GPIO import time #라즈베리파이 보드핀 넘버를 사용 GPIO.setmode( GPIO.BOARD ) #12번 핀을 출력모드로 설정한다. GPIO.setup( 12, GPIO.OUT ) for i in range (0,3): GPIO.output( 12, GPIO.HIGH ) time.sleep(1) GPIO.output( 12, GPIO.LOW ) time.sleep(1) GPIO.cleanup()
서보모터를 아래처럼 직접 아두이노에 연결을 해주었습니다. 시리얼 모니터를 열고 -180에서 180 사이의 숫자를 입력하면 서모 모터가 해당 방향으로 이동하게 됩니다. #include Servo myservo; int servo_position = 0; void setup() { Serial.begin(9600); myservo.attach(9); //디지털9번핀에 서보모터를 연결 } String readSerial() { String str = ""; char ch; while( Serial.available() > 0 ) { ch = Serial.read(); str.concat(ch); delay(10); } return str; } void loop() { String str = readSerial..
T-shirt size problem 아래는 옷을 생산할 때 , 참고하기 위해 만든 사람들의 키와 몸무게에 대한 데이터를 도식화한 그림이다. 회사 입장에서는 모든 사이즈를 만들 수 없기 때문에 아래 그림처럼 사람들의 신체사이즈를 그룹화하여 3개 혹은 5개의 그룹으로 만들어서 제품을 생산하게 된다. 이때 사용할 수 있는 것이 K-Means Clustering이다. How does it work ?이 알고리즘은 반복적인 처리(iterative process) 알고리즘이다. 단계별로 두 개의 데이터 그룹으로 그룹화 해보도록 하자. 1단계 : 알고리즘은 임의로 두 개의 중심점(centroid)인 C1과 C2를 선택한다. C1, C2 ( 중심 점으로 두 개의 데이터를 선택하기도 한다. ) 2단계 : 두 개의 중심..
https://trac.ffmpeg.org/wiki/Scaling%20(resizing)%20with%20ffmpeg ffmpeg -i input.avi -vf scale=320:240 output.avi
import numpy as np import cv2 black_image = np.zeros((512,512,3), np.uint8 ) r = 200 for theta in range(0,360): radian = theta*np.pi/180 x=np.cos(radian)*r y=np.sin(radian)*r cv2.line( black_image, (250,250), (int(x+250),int(y+250)), (255,0,0), 1 ) cv2.imshow( "image", black_image ) cv2.waitKey(0) black_image = np.zeros((512,512,3), np.uint8 )512x512크기의 BGR 이미지를 생성. 0으로 채워지기때문에 블랙 이미지임 r = 200 f..
다음과 같이 필요한 패키지를 설치합니다. 그냥 저장소에 있는 버전을 사용할 경우에 데이터가 안넘어오는 문제가 있었습니다. 그래서 기존에 설치한 것을 지우고 pip를 이용하여 설치하였습니다. sudo apt-get purge python-pymssql python-pipsudo apt-get install freetds-devsudo pip install Cythonsudo pip install pymssql DB로부터 데이터를 가져오는 간단한 예제입니다. 윈도우에서 사용할시에도 아래처럼 사용하면 잘 동작합니다. import _mssql conn = _mssql.connect(server='서버 아이피', user='아이디', password='패스워드', database='데이터베이스 이름') conn...
L293D를 이용하여 DC 모터의 방향 제어하기 DC 모터의 방향제어는 간단하다. 단지 극성을 반대로 하기만 하면 된다. 모든 DC 모터는 2개의 터미널로 전원을 공급받기 때문이다. +와 –를 모터에 연결하면 한쪽 방향으로 모터가 돈다. 그런데 극성을 반대로 연결하게 되면 DC모터는 반대로 돌게 된다. http://www.electroons.com/electroons/dc_motor_control.html 마이크로컨트롤러에서 5V와 0V 값을 변경함으로써 모터의 극성을 바꾸는 것도 가능할거 같지만 마이크로컨트롤러는 모터가 요구하는 5V보다 큰 전원을 입력하면 고장날 염려가 있다. 그래서 필요한 것이 H Bridge이다. H Bridge 회로에는 4개의 스위치가 존재한다. 이 스위치를 이용하여 모터의 방향..
2015.10.30아래 퓨즈를 체크해제 안해줘서 딜레이함수가 오동작하는 바람에 한참해멨네요... CKDIV8 : 시스템 내부적으로 클럭을 8분주 한다. 외부 Resonator/Crystal 등을 사용할 경우 체크하지 않는다. 2015.10.29.. [임베디드/Avr] - Atmega328 보드 만들기 - 회로 및 부품 확인 [임베디드/Avr] - Atmega328 보드 만들기 - 회로도 그려보기 미루고 미루다가 결국 오늘 날잡아서 납땜질을 했습니다.. 익숙치 않아서 2시간 넘게 걸린거 같아요.. 간단히 끝날줄 알았는데 생각보다 힘드네요.. 그리고 5v로 입력되는 USB 전원을 그대로 쓰기로 해서 전원부 부분은 싹 뺴버렸네요.. pcb 공간이 남으면 추가로 3.3v 전원 공급이라든가 모터구동 회로도 추가할..