본문 바로가기

전체 글119

풀업저항 , 풀다운저항 디지털회로에서 스위치나 버튼을 사용하려면 반드시 필요로하는 것이 풀업저항(Pull-up Resistor) , 풀다운저항(Pull-down Resistor) 이다. 일반적으로 디지털회로에서(digitalRead()) , 입력값은 HIGH와 LOW로 나뉘는데, HIGH는 1, LOW는 0을 가리킨다. 먼저 풀업저항과 풀다운저항을 설명하려면 플로팅상태라는 것을 알아야하는데 플로팅상태란! 디지털회로에서 전압이 HIGH 인지 LOW인지 모르는상태 , 붕 떠있는 상태를 뜻한다. 가령 디지털회로에 5V전압과 스위치를 연결하여 , 스위치를 닫으면 HIGH 상태로 인식하지만, 스위치를 열었을경우, 전압이 0 인 LOW상태로 인식하지 않고 , 몇 V인지 인식할 수 없게 된다. 이러한 현상을 플로팅현상이라 한다. 이러한 현.. 2021. 5. 4.
라즈베리파이와 아두이노 라즈베리파이는 학교나 개발도상국에서 기초 컴퓨터과학 교육을 증진시키기 위해 개발되었다. 라즈베리파이는 SBC (Single Board Computer)의 종류도 소형 컴퓨터라고 볼 수 있다. CPU를 소형으로 만들어 보드에 장착되어있고, OS 설치가 가능하여, 프로그램 개발에도 많이 쓰인다. 라즈베리파이는 마이크로프로세서로 비디오 등 복잡한 수치 계산과 그래픽 처리, 데이터 처리에 적합하다. 아두이노는 하드웨어에 익숙하지 않은 학생들이 자신들의 디자인 작품을 손쉽게 제어할 수 있게 하려고 만든 제품이고 라즈베리파이가 소형 보드라는 개념이라면, 아두이노는 소형, 하나의 칩셋이다. cpu등이 컴퓨터 부품이 하나의 칩셋으로 되어 기능한다고 한다. 아두이노는 OS설치는 불가능하지만, 여러 OS를 지원하여 컴퓨터.. 2021. 5. 4.
AWS EC2에 FTP 연결 , 파일 이동 EC2에 쉽게 파일 이동을 하기위해선 FTP로 연결하는 방법이 있는데 먼저 , 파워셀에서 SSH로 서버를 접속하여 프로그램 설치 및 설정을 해야한다. 접속 후 먼저 프로그램을 설치한다. 위의 명령어로 프로그램 설치. FTP의 포트 번호는 20 , 21 번이다. ( netstat -tnlp 로 확인 가능 , 21번만 보임 ) 후에 ec2 홈페이지로 가서 , 포트를 열어준다. 위와같이 포트를 설정해 주고, 다시 파워셀로 돌아와서 $ sudo vi /etc/ftpusers 명령어를 실행하여 에디터를 열어준다. 에디터에서 쉬프트G를 누르면 제일 아랫줄로 이동하게 된다. 맨 아래에 사용자를 추가한다. ( 기본사용자는 ubuntu이기 때문에 ubuntu로 설정한다. ) 다음은 config 설정을 해야한다. $ su.. 2021. 4. 28.
OpenCV Persperctive 2 (마우스로 좌표 찍기) 이번에는 좌표를 수기로 적는 것이 아닌, 이미지를 보고 그 위에 원하는 곳을 클릭하여 그 클릭한 곳을 좌표로 설정하여 , 이미지를 확대해보려한다. 아래는 그 예제 코드이다. 먼저 마우스 관련 함수이다. 위의 함수를 이용하였다. 코드 예제 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 32 33 34 35 36 37 import cv2 import numpy as np from utils import get_four_points img_src = cv2.imread('data/images/book1.jpg') # 결과물 이미지 사이즈 dst_size = (400, 300, 3) # 결과의 이미지를 넣을 .. 2021. 4. 26.
Streamlit EC2 연결하기. 완성된 Streamlit 을 EC2로 배포하는 것을 해보려고 한다. 아마존의 EC2 서버를 이용하여 배포해 보겠다. 먼저 AWS 로그인을 한 뒤에 EC2 메뉴로 가서 , 지역을 서울로 바꿔준후에 인스턴스 시작을 누른다. ( 여기까지는 해 놓아서 사진이 없다... ) 프리티어로 하기 때문에 서버는 하나가 있어야하고 , 기존에 있다면 종료 후 해야한다. 인스턴스 등록시에 , 키페어를 새로 발급받아 파일로 다운로드하여 잘 가지고 있어야 추후에도 서버사용이 가능하다. ( .pem 으로 만들어진다.) 서버를 만들면 이런 화면이 나온다. 여기 인스턴스 ID를 들어가면 자신이 쓸수 있는 퍼블릭 주소가 나오는데 여기에 쓰여있는 주소로 나의 Streamlit이 배포가 되는 것이다. 윈도우기 때문에 파워셀을 이용하여 서버.. 2021. 4. 26.
OpenCV AffineTransform, homography(perspective)Transform AffinTransform 은 선의 평행은 유지되면서 이미지를 변환한다. 이동, 확대, 반전의 변환까지 포함하며 , 3개의 매치되는 점이 필요하다. ( 원본이미지의 3개의 점과 , 변화된 이미지의 3개의 점으로 변환 행렬을 구하고 이미지를 변환시킨다 ) 변환행렬 구하는 예제 각기 다른 두개의 세점좌표를 만들고 , cv2.getAffineTransform함수에 적용하였다. cv2.getAffineTransform 함수는 두개의 좌표로 변환행렬을 구해준다. AffineTransform 코드예제 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 import cv2 import numpy as np ## Affine Tra.. 2021. 4. 23.
728x90