본문 바로가기

분류 전체보기199

Python - 스레드 스레드 멀티 스레드 프로세스(process) 실행 중인 하나의 프로그램 하나의 프로그램이 여러 프로세스로 만들어짐 멀티 태스킹(multi tasking) 두 가지 이상의 작업을 동시에 처리하는 것 멀티 프로세스 독립적으로 프로그램들을 실행하고 여러 가지 작업 처리 멀티 스레드 한 개의 프로그램을 실행하고 내부적으로 여러 가지 작업 처리 메인(main) 스레드 모든 프로그램은 메인 스레드가 실행하며 시작 실행 파일의 첫 코드부터 아래로 순차적으로 실행 더 이상 실행할 코드가 없는 경우 종료 실행 종료 조건 마지막 코드 실행 return 문을 만나면 main 스레드는 작업 스레드들을 만들어 병렬로 코드들 실행 멀티 스레드 생성해 멀티 태스킹 수행 프로세스의 종료 싱글 스레드: 메인 스레드가 종료하면 프로세스.. 2020. 10. 19.
Raspberry Pi - 자동차 제어 (rccar.py) 자동차 제어 참고 https://gpiozero.readthedocs.io/en/stable/recipes.html#robot https://gpiozero.readthedocs.io/en/stable/api_boards.html 08_CAR-EX/ex_01.py from gpiozero import Robot from time import sleep # left/right=(전진,후진,PWM) robot = Robot(left=(17, 27, 22), right=(15, 18, 14), pwm=True) for i in range(4): robot.forward(0.5) # 0 ~ 1 사이 sleep(1) robot.stop() sleep(1) robot.right(0.5) sleep(1) robot... 2020. 10. 19.
Raspberry Pi - 블루투스 통신 (btsocket.py) 라즈베리파이 블루투스 통신 관련 패키지 설치 sudo apt-get install -y bluetooth blueman bluez sudo apt-get install -y python-bluetooth pip3 install pybluez sudo reboot 블루투스 장치 페어링 $ bluetoothctl [bluetooth]# scan on Discovery started [CHG] Controller DC:A6:32:AC:76:8E Discovering: yes [NEW] Device E4:7D:BD:A4:DD:C5 [TV] Samsung Q7 Series (55) [NEW] Device 98:D3:51:F9:42:AE HC-05 [NEW] Device 3C:77:E6:CD:A7:FE DESKTO.. 2020. 10. 19.
Raspberry Pi - 오디오 녹음 및 재생 오디오 녹음 및 재생 pyaudio 모듈 오디오 녹음 pip install pyaudio pydub 오디오 재생 및 포맷 변환 pip install pydub 라즈베리파이 sudo apt install ffmpeg sudo pip install ffmpeg-python sudo apt-get install python3-pyaudio sudo pip install pydub 디바이스 정보 목록 audio_device_list.py import pyaudio p = pyaudio.PyAudio() info = p.get_host_api_info_by_index(0) # 오디오 디바이스 정보 얻기 numdevices = info.get('deviceCount') # 디바이스 갯수 얻기 for .. 2020. 10. 19.
Raspberry Pi - 카카오 음성합성, 음성인식 카카오 음성합성, 음성인식 카카오 음성 API https://speech-api.kakao.com/ 개발자 가이드 https://developers.kakao.com/docs/latest/ko/voice/rest-api 음성 인식(뉴톤) Speech-to-Text(STT): 음성을 텍스트로 변환 음성 합성(뉴톤톡) Text-to-Speech(TTS): 텍스트를 음성으로 변환 무료 가격 정책 음성 인식 5,400초(90분) 음성 합성 20,000자 카카오 개발자 등록 https://developers.kakao.com/ 애플리케이션 추가 내 애플리케이션 > 애플리케이션 추가하기 REST API 키 얻기 음성 API 활성화 음성 합성 음성 합성 요청 xml 루트 음성 합성할 텍스트 지정 name 속성: 보이.. 2020. 10. 19.
Raspberry Pi - python-picamera - 이미지 프로세싱 (picam.py) python-picamera 이미지 프로세싱 numpy 배열에 저장하기 camera.capture(numpy배열, '이미지포맷') numpy 배열의 공간이 확보되야 함 이미지 포맷 rgb bgr (OpenCV) numpy 배열에 저장하기 picam_processing_ex01.py import time from picamera import PiCamera import numpy as np import cv2 with PiCamera() as camera: camera.resolution = (320, 240) camera.framerate = 24 time.sleep(2) output = np.empty((240, 320, 3), dtype=np.uint8) # camera.capture(.. 2020. 10. 19.
Raspberry Pi - python-picamera - 동영상 촬영 python-picamera 3 동영상 촬영 기본 picam_video_ex01.py import picamera camera = picamera.PiCamera() camera.resolution = (640, 480) camera.start_recording('my_video.h264') camera.wait_recording(60) camera.stop_recording() 포맷 조정 picam_video_ex02.py from io import BytesIO from picamera import PiCamera stream = BytesIO() camera = PiCamera() camera.resolution = (640, 480) camera.start_recording(stre.. 2020. 10. 19.
Raspberry Pi - python-picamera - 이미지 캡처 python-picamera 2 이미지 캡처 이미지 캡처(이미지 촬영) camera.capture('파일명' [, '포맷']) # 저장할 파일 경로 camera.capture(file [, '포맷']) # 파일 객체 camera.capture(stream [, '포맷']) # IO.Bytes 스트림 picam_capture_ex01.py from time import sleep from picamera import PiCamera camera = PiCamera() camera.resolution = (1024, 768) camera.start_preview() # Camera warm-up time sleep(2) camera.capture(&#.. 2020. 10. 19.
Raspberry Pi - python-picamera python-picamera python-picamera 라즈베리 파이 카메라를 파이썬으로 제어하는 라이브러리 최신 라즈베리 파이에는 이미 설치되어 있음 sudo apt-get install python-picamera 기본적으로 자동 설치 되어있다. from picamera import PiCamera camera = PiCamera() # PiCamera 객체 생성 picamera 주요 프로퍼티 미리보기 화면 start_preview() 미리 보기 화면을 생성 stop_preview() 미리 보기 화면을 닫음 P:\workspace\05_python-picamera 미리보기 pycamera_basic_ex01.py from picamera import PiCamera from time import s.. 2020. 10. 19.
Raspberry Pi - Pi Camera picamera 동작 확인 $ raspistill -v -o test.jpg 미리보기 화면을 5초간 보여준 후 촬영 촬영한 이미지를 test.jpg 파일로 저장함 타이머 변경 $ raspistill -t 1000 -o cam.jpg -t : 밀리초 단위로 촬영 타이머 설정 크기 변경 $ raspistill -w 300 -h 300 -o cam.jpg -w : 이미지 폭 지정 -h : 이미지 높이 지정 밝기 조정 $ raspistill -br 0 -o br-0.jpg $ raspistill -br 50 -o br-50.jpg $ raspistill -br 100 -o br-100.jpg -br : 밝기를 %로 지정 화면 뒤집기 $ raspistill -hf cam.jpg -hf : 수평 방향으로 뒤집기 -.. 2020. 10. 19.
Raspberry Pi - 이미지 처리 - OpenCV - 얼굴 영역 추출 (cam.py) 라즈베리파이 vscode 설치 $ sudo su # wget https://packagecloud.io/headmelted/codebuilds/gpgkey -O - | sudo apt-key add - # . 0: print(face_list) color = (0, 0, 255) for face in face_list: x, y, w, h = face cv2.rectangle(image, (x, y), (x+w, y+h), color, thickness=8) cv2.imwrite("facedetect-output.PNG", image) else: print("no face") [[402 479 354 354]] 원본 실행후 검출된 얼굴 영역 모자이크 처리하기 cv_face_ex02.py 30배 축소하여 .. 2020. 10. 19.
Raspberry Pi - 이미지 처리 - OpenCV - 기본연산 OpenCV 기본연산 영상 속성과 화소 접근 영상 속성 cv_ex10.py import cv2 import numpy as np img = cv2.imread('./data/lena.jpg') # img = cv2.imread('./data/lena.jpg', cv2.IMREAD_GRAYSCALE) print('img.ndim=', img.ndim) print('img.shape=', img.shape) print('img.dtype=', img.dtype) # np.bool, np.uint16, np.unit32, np.float32, np.float64, np.complex64 img = img.astype(np.uint32) print('img.dtype=', img.dtype) img = np.u.. 2020. 10. 19.