일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- ssh전송
- ssh원격
- urlretrieve
- 아두이노 스케치
- 웹 크롤링
- 파이참 가상환경
- bs4
- 아두이노
- MEGA2560
- non block
- 확률모델
- BeautifulSoup
- 파이썬 웹 개발
- ssh파일
- CSV
- 베이즈이론
- 파이썬 장고
- 초음파
- 베이즈법칙
- Arduino
- Python
- 머신러닝
- 확률공부
- 텍스트 검색
- 스케치
- 티스토리
- ultrawave sensor
- 파이썬 가상환경
- 파이썬
- 초대장
- Today
- Total
목록프로젝트 (15)
잡
Python을 사용함에 있어 날짜관련한 계산이 필요한 경우가 있다. 내가 접한 문제는내가 입력한 기간을 일정한 기간으로 분한할 필요가 있는데이를 두달 단위로 나눠야 한다는 것이다.여기서 월별로 나누는 기능이 필요했다. https://docs.python.org/2/library/datetime.html 파이썬 홈페이지를 참고하여 datetime을 사용하였다. 기본적으로 날짜를 선언하기 위해선123import datetime date = datetime.date(2017,1,2)cs 위와 같이 선언하면 된다.Text로 선언한 후 , 파싱할 수도 있다. 다음으로 date로부터 일정 기간을 더하거나 빼고 싶을 경우12345678import datetimefrom datetime import timedelta ..
초음파 센서를 사용할때 일반적으로 pulseIn을 사용하게 된다.그러나 이 함수는 신호가 들어올 때 까지 기다리므로 프로그램 전체가 일시적으로 정지하게 된다.물론 물체가 가까우면 상관이 없으나, 거리가 먼 경우 기기의 작동이 느려지는 것을 눈으로 확인할 수 있다. 실제 거리에 따라 모터의 속도가 달라짐을 확인할 수 있다. 이러한 문제를 해결하는데 가장 좋은 방법은 역시 인터럽트를 사용하는것.즉, 초음파 센서에서 트리거를 통해 보낸 후 수신은 하드웨어 인터럽트를 이용해 감지하여 시간을 측정하고 그 시간을 토대로 거리를 확인하는 방법이다.
아두이노를 사용해서 거리를 측정할 필요가 있을 경우에는 대체적으로 초음파센서를 활용한다.저렴한 가격에 괜찮은 성능을 보여주기 때문에 사용하기 좋다. 초음파센서는 초음파 송신부와 수신부로 나뉜다.일반적으로 거리를 측정하는 방법은 송신부에서 보낸 신호를 수신부에서 받을때까지 걸리는 시간을 체크하게 된다. 송신을 담당하는 핀은 Trig이고, echo는 수신하게 된다.송수신 신호의 간격을 음속에 곱하여 속도를 얻게 되며, 식은 다음과 같다. 시간 = time x 0.034 / 2 위 내용을 바탕으로 소스를 구현하였으며, 서보모터와 결합하여 회전하면서 거리를 수신할 수 있도록 하였다.여기에는 pulseIn함수를 사용하며, 말 그대로 신호에 입력변화를 감지하는데까지 걸린 시간을 확인한다.따라서 이 시간동안 프로그램..
서보모터를 이용하는 이유중에 하나는 정확한 제어라고 생각한다. PWM신호를 통해 원하는 각도만큼 혹은 속도만큼 제어가 가능하다.운이 좋게도 서보모터에는 대체적으로 모터드라이버가 들어있어, 큰 어려움 없이 제어가 가능하다.아두이노에서는 서보모터와 관련된 라이브러리를 제공하고 있어 더욱 편하게 코딩할 수 있다. 위 소스에 대해 간략하게 설명하면, 우선적으로 Servo 객체를 선언한다.각 객체를 attach함수를 사용하여 초기화 하는데, 변수는 서보모터의 신호선이 들어가는 디지털 포트를 입력해주면 된다.또한, 서보모터에서 각도는 write 함수를 통해 입력할 수 있고, 입력된 각도에 맞춰 서버모터가 회전하게 된다.위 예제에서는 0에서 180까지 또 180에서 0까지 각도를 변경하게 된다. 서보모터에서 허용되는..
웹 크롤러를 제작하면서 단순히 HTML코드뿐 아니라 pdf, txt, csv등 여러 파일을 읽어야 하는 순간이 생기게 된다. 1. 텍스트 파일사실 텍스트 파일을 직접 올리는 경우는 많지 않다. 그러나 문서만을 다루는 사이트들의 경우 텍스트 파일을 다루는 경우도 종종 있다.http://doohaproject.tistory.com/22 에 있는 예제 파일을 기준으로 파일을 읽는다면 from urllib.request import urlopen text = urlopen('http://doohaproject.tistory.com/attachment/cfile2.uf@25A2F43359777C510E95C5.txt') string = text.read() print(string) 위의 소스를 실행해보면 파일의 ..
CSV 는 스프레드시터 데이터 저장에 사용된다. 이는 마이크로소프트 엑셀은 물론 여러 프로그램에서 호환이 된다.CSV를 사용할 때는 하나의 row를 writerow 명령어를 통해 같이 입력해주어야 한다. import csv csvFile = open("./test.csv", 'w+') try: writer = csv.writer(csvFile) writer.writerow(('number', 'number plus 2 ', 'number times 2')) for i in range(10): writer.writerow((i, i+2, i*2)) finally: csvFile.close() 다음으로 MySQL 혹은 MariaDB와 같은 데이터베이스를 사용하여 데이터를 저장하는 방법데이터 베이스를 사용하면..
웹에서 데이터를 저장하는 방법에는 여러가지가 있을 수 있다.각종 파일을 직접 저장하는 방법도 있고, 링크를 저장할 수 있다.그러나 링크를 저장하는 경우, 해당 파일이 외부에 있기 때문에 파일변경등의 문제가 발생하면 전혀 해결할 수 없다.따라서 필수적인 자료는 저장하는게 더 나은 선택일 수 있다. 여기서는 urlretrieve를 사용(https://docs.python.org/3/library/urllib.request.html#legacy-interface) 예시1 from urllib.request import urlopen from urllib.request import urlretrieve from bs4 import BeautifulSoup html = urlopen("http://doohapro..
Failed building wheel for cryptography오류가 발생하고 패키지 설치가 안되는 경우 sudo apt-get install libssl-dev를 통해 해결할 수 있다.
저번 문자인식 프로젝트를 종료하고,이번학기부터 EPL의 승부를 예측하는 프로젝트를 시작한다.프로젝트를 진행하기 위한 필수적으로 선수들의 데이터와 경기내용 경기결과등의 정보등이 필요하다.그래서 우선적으로 웹크롤러를 만들어, 자동으로 데이터를 수집하는 프로그램을 제작해보았다. 처음에는 C/C++을 통해서 구현하려 했으나, 너무 방대한 소스와, 지식이 필요하다.그래서 파이썬을 활용하는 것으로 방향을 선회했다. 왜냐하면 파이썬은 어렵지 않고, 지원되는 모듈이 많아 크롤러 제작해 적합했기 때문파이썬의 기본 문법은 다른 언어를 익혀본 사람이라면 , 적어도 2일 많으면 4~5일이면 익숙해질 수 있을 것이라 생각한다. 파이썬에는 다양한 모듈들이 지원되고 있다. 그 중에서 우리가 활용할 핵심 모듈은BeautifulSou..
자료구조 알고리즘 텀 프로젝트검색기의 간단한 기능을 구현 과제는 다음과 같다. word_set.txt에는 5천여개의 keyword가 존재한다.이 키워드를 1000개 가까이 랜덤하게 조합하여 문장을 만들었고,이 문장이 총 1000개 가까이 있다. 사용자가 keyword를 입력하는 경우, 해당 키워드를 통해 자신만의 Score 함수를 만들어이상적인 행을 찾고, 내용을 출력한다. 문자열로 들어오는 값을 HashFunction을 이용해 Hash key로 변환하고, Hash table을 생성한다.그리고 나서 , document의 모든 아이템에 접근하면서 Hash table을 update를 진행하며 인덱싱을 완료한다.사용자가 문자열을 여러개 입력하면, 입력된 문자열을 hash key로 변경하여 hash table을..