분류 전체보기

    ESP8266, 구글 어시스턴트, Sinric Pro로 컴퓨터 전원 켜기

    최근 집 밖에서 집 컴퓨터를 켜야 되는 상황이 종종 발생하여 ESP8266과 구글 어시스턴트로 컴퓨터 본체를 켜는 장치를 만들어 보기로 했다. 물론 위와 같이 물리적으로 원격으로 스위치를 눌러주는 스위치 봇은 쉽게 구할 수 있지만 컴퓨터에 달기에는 좀 거추장스러워 보여 본체 내부에 숨길 수 있는 형태로 제작해보자 했다. 고려한 사항은 다음과 같다. 와이파이로 연결되어 구글 어시스턴트 연동이 가능할 것 컴퓨터 본체의 전원버튼은 그대로 사용이 가능할 것 배터리를 내장하여 컴퓨터 전원이 장시간 꺼져있어도 사용 가능하며 컴퓨터가 켜진 상태에서는 배터리가 충전될 것 우선 보드는 ESP8266기반의 보드를 사용했다. 필자는 주로 NodeMCU, Wemos D1 mini 같은 잘 알려진 보드를 사용했는데 문제는 배터..

    NodeMCU와 PMS5003 센서로 미세먼지 측정하기

    이전 글과 이어진다. https://diy-project.tistory.com/145 아두이노 + PMS5003 센서로 미세먼지 측정하기 비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준 diy-project.tistory.com 미세먼지 측정은 잘 되지만 화면이 없는 것이 아쉬워 OLED 디스플레이를 연결할 수 있게 기판을 설계했다. 언제나처럼 JLCPCB를 통해 PCB 주문을 해주었다. 소량 프로토타입 제작을 국내 기판 제작업체보다 굉장히 저렴하게 제작할 수 있어서 좋다. https://jlcpcb.com/KOR PCB 프로토타입; PC..

    아두이노 FPS 게임 컨트롤러 3.0

    https://diy-project.tistory.com/19 아두이노 FPS 게임 컨트롤러 (오버워치, 더 하우스 오브 더 데드) 전에 아두이노를 이용해 에어마우스를 만들었었다. http://diy-project.tistory.com/12 이 에어마우스를 만든 직후 이를 응용해 FPS 게임컨트롤러를 제작하기 시작했고, 예상보다 오래걸린 약 2주의 제작 diy-project.tistory.com https://diy-project.tistory.com/57 아두이노 FPS 게임 컨트롤러 2.0 시작하기에 앞서 4개월전에 올린 FPS 게임 컨트롤러에 (http://diy-project.tistory.com/19) 대해 많은 분들이 관심을 가져준 것에 대해 감사한다. 많은 분들이 댓글, 메일 등으로 해당 프..

    아두이노 블루투스 에어마우스 만들기

    정말 오랜만에 에어마우스 글을 올리는 것 같다. https://diy-project.tistory.com/12 아두이노 에어마우스 공중에서 사용할 수 있는 에어마우스를 일상 생활에서 쓸 일은 그리 많지는 않다. 최근들어 다양한 기능을 지원하는 스마트 티비의 개발과 함께 좀 더 다양한 동작을 할 수있는 에어마우스 형태 diy-project.tistory.com https://diy-project.tistory.com/19 아두이노 FPS 게임 컨트롤러 (오버워치, 더 하우스 오브 더 데드) 전에 아두이노를 이용해 에어마우스를 만들었었다. http://diy-project.tistory.com/12 이 에어마우스를 만든 직후 이를 응용해 FPS 게임컨트롤러를 제작하기 시작했고, 예상보다 오래걸린 약 2주의 ..

    아두이노 커스텀 기계식 키보드 만들기 [#1 키보드 메트릭스 테스트]

    최근 대학원 연구실 친구를 따라 커스텀 키보드에 입문하게 되어서 커스텀 키보드 하나를 만들게 되었다. 나름대로 윤활도 하고 잘 사용 중인데 이참에 스위치를 제외한 내부 부품까지 자작해보고 싶다는 생각이 들어서 자료를 찾아보게 되었다. 일반적으로 키보드는 70 키 이상의 많은 수의 스위치를 사용하게 되는데 아두이노와 같은 컨트롤러는 이렇게 많은 수의 스위치를 제어하는 것이 사실상 불가능하다. 그래서 키보드 메트릭스라는 방법을 사용해야 하는데 아래와 같은 회로로 구성된다. 각각의 Col에 전기신호를 순차적으로 주고 스위치를 누르면 어떤 위치의 Row에 전기 신호가 들어오는지 읽어 컨트롤러의 핀 개수를 줄이는 방법이다. 이때 다이오드가 필수적인데, 2개 이상의 스위치를 눌렀을 때 엉뚱한 위치에 신호가 들어오는..

    아두이노 + PMS5003 센서로 미세먼지 측정하기

    비교적 저렴하고 성능이 좋은 미세먼지 센서는 PMSX003 (PMS5003, PMS7003)가 있다. 샤오미 공기청정기 역시 동일한 센서를 사용한다고 알고 있는데 1~2만원대의 가격으로 꽤 준수한 측정 성능을 보여준다. 국내에서 구입하는 것보다 알리가 좀 더 저렴한 듯싶다. 5409.0₩ 22% OFF|PMS5003 PMS7003 PMS7003T PMS5003ST PMS3003 PMSA003 센서 모듈 PM2.5, 공기 입자 먼지 디지털 온도 Smarter Shopping, Better Living! Aliexpress.com ko.aliexpress.com 다만 로직 레벨이 3.3V이기 때문에 일반적인 아두이노에서 사용하기 어렵다. 따라서 nodemcu를 이용해 센서의 값을 읽는 것이 더 편하다. 그리..

    PD 충전기로 충전 가능한 3S 배터리팩 자작

    12V 배터리팩이 필요해서 하나 만들어봤다. 배터리는 아래 링크에서 구입했다. http://diyjoa.com/product/detail.html?product_no=9799&cate_no=140 No.1 DIY전자부품 쇼핑몰! 다이조아 No.1 DIY전자부품 쇼핑몰! 다이조아 XON,DIY관련 각종 전자부품&완제품,배터리,LED조명,아답터(SMPS)등 DIY집합소 diyjoa.com 리튬 이온 배터리고 총 3개 구입해서 3S 1P로 구성한다. 셀간 전압 밸런스를 맞춰야 하는데 아래와 같은 BMS 모듈 (yh1047a)을 사용했다. 30A 제품이라 배터리에 비해 좀 오버 스펙이지만 남는 BMS가 이거 하나뿐이었다. 어쨌든 위 배선을 참고하여 배터리팩을 연결해줬다. 사실 이전 글에서도 언급했듯이 12.6V..

    BMS 없이 tp4056으로 3S 배터리 충전하기?

    3S로 구성된 18650 배터리가 필요할 일이 생겼다. 일반적으로 3S 배터리를 구성할 때는 충전 시 배터리 셀의 전압을 동일하게 유지하기 위해 BMS 보드를 사용한다. 문제는 BMS 보드를 사용해도 12.6V (4.2 X 3)의 충전기를 사용해야 한다는 점인데 (정전압의 아답터가 아니라 정전류의 충전기를 사용해야 한다), 범용성을 생각해보면 일반적인 5 pin 혹은 C타입 충전기를 사용하지 못한다는 점이 아쉽다. 그래서 일반적인 5V 충전기로 3S 배터리를 충전할 방법을 찾던 중 아래 영상을 발견했다. 아래는 영상에 나온 회로이다. 흔히 단일 18650 배터리를 충전할 때 많이 사용되는 tp4056 보드 3개를 사용한다. 특이하게 보드의 출력 단자 부분을 다이오드로 연결하는데 역 기전력 방지용으로 사용..

    논문 영문 교정 받기 좋은 에세이리뷰 (essayreview) 이용 후기

    최근 필자의 1 저자 논문 2편이 WACV 2022 (https://wacv2022.thecvf.com/)에 운 좋게 accept 되었다. Robust Lane Detection via Expanded Self Attention https://arxiv.org/abs/2102.07037 Robust Lane Detection via Expanded Self Attention The image-based lane detection algorithm is one of the key technologies in autonomous vehicles. Modern deep learning methods achieve high performance in lane detection, but it is still di..

    파이썬으로 mp3 다운로드 프로그램 만들기

    https://github.com/Hydragon516/Bugs-Music-Downloader GitHub - Hydragon516/Bugs-Music-Downloader Contribute to Hydragon516/Bugs-Music-Downloader development by creating an account on GitHub. github.com 벅스(Bugs) 뮤직 크롤러를 만들어 보았다. 벅스에서 직접 음원을 다운로드할 수 있는 프로그램은 당연히 아니다. 약간의 꼼수로 벅스에서 음원 정보를 크롤링하고 해당 정보의 음원을 유튜브에서 추출하는 방식으로 동작한다. 코드는 아래와 같다. from PyQt5.QtCore import pyqtSignal, pyqtSlot, QThread from Py..

    파이썬으로 유튜브 다운로드 프로그램 자작하기

    예전에도 비슷한 프로그램을 만든 적이 있지만 거의 방치해둔 유튜브 다운로드 프로그램이 있다. https://diy-project.tistory.com/134 유튜브 동영상 다운, 음원 추출 프로그램 최근 유튜브 동영상을 다운로드할 일이 생겼다. https://www.4kdownload.com/ko/ 라고 불리는 유명한 다운로드 툴이 존재하기는 하나 갑자기 이러한 프로그램을 직접 만들어 보고싶다는 생각이 들었다. diy-project.tistory.com 지금은 유튜브 업데이트로 작동하지 않아 새로 하나 만들어보았다. PyQt5로 GUI도 깔끔하게 제작했다. 코드는 다음과 같다. from PyQt5.QtCore import pyqtSignal, pyqtSlot, QThread from PyQt5.QtWid..

    아두이노 다채널 미디 플레이어 연주

    오랜만에 유튜브에 2개의 영상을 추가했다. https://www.youtube.com/watch?v=oJaiPJPPVAo https://www.youtube.com/watch?v=I0f2exbv5GQ

    샤오미 미세먼지 측정기 PM 2.5 구입

    미세먼지 시즌이 곧 다가오기도 하니 가성비 괜찮은 샤오미 미세먼지 측정기를 하나 구입했다. 아래는 구입 링크이다. https://ko.aliexpress.com/item/32955903120.html?spm=a2g0s.9042311.0.0.e0d84c4dICAvap US $26.87 23% OFF|Xiaomi mijia smartmi pm2.5 공기 감지기 휴대용 민감한 mijia 공기 품질 테스터 led 스크린 3 색 디지털 표시기-에서스마트 리모콘부터 가전제품 의 AliExpress Smarter Shopping, Better Living! Aliexpress.com ko.aliexpress.com 제품 구성은 심플하다. 사용설명서랑 본체가 전부, 별도의 케이블은 없다. 기상청 미세먼지 농도와 비슷하..

    오렌지파이(Orange Pi) GPIO 제어

    오렌지 파이가 가지고 놀기 정말 좋은 보드이지만 어째서인지 공식적인 GPIO를 제어하는 라이브러리가 없다. 라즈베리파이보다 저렴하지만 인기가 인지도가 적은 데는 다 이유가 있다. (확실히 정보량이 적다.) 필자는 Orange Pi PC 버전을 구매해 사용하고 있다. 구글링을 해보니 해외 사용자가 제작해둔 GPIO 라이브러리가 있었다. 하지만 업데이트가 1년전이라 작동할지는 의문이었다. https://github.com/Jeremie-C/OrangePi.GPIO Jeremie-C/OrangePi.GPIO RPi.GPIO drop-in replacement library for Orange Pi Boards - Jeremie-C/OrangePi.GPIO github.com pip으로는 라이브러리가 설치가 되..

    유튜브 동영상 다운, 음원 추출 프로그램

    최근 유튜브 동영상을 다운로드할 일이 생겼다. https://www.4kdownload.com/ko/ 라고 불리는 유명한 다운로드 툴이 존재하기는 하나 갑자기 이러한 프로그램을 직접 만들어 보고싶다는 생각이 들었다. https://www.4kdownload.com/ko/ 4K Download – 유용한 무료 애플리케이션으로 PC와 Mac, Linux에서 사용 가능합니다. 유용한 무료 애플리케이션으로 현대적인 플랫폼에 모두 적합합니다. YouTube에서 비디오와 오디오, 구독 서비스를 이용하고 인스타그램에서 사진을 다운받고 슬라이드 쇼를 만들어 보세요! www.4kdownload.com 요즘 파이썬을 주로 쓰는지라 파이썬으로 프로그램을 작성했다. pytube라는 유튜브 다운로드 API가 있어 이를 이용했다..

    파이토치 첫걸음

    운 좋게도 페이스북 이벤트에 당첨되어 한빛미디어 출판사의 파이토치 첫걸음이라는 딥러닝 입문 책을 무료로 받게 되었다. (받은지는 좀 됐지만) 잠깐 읽어본 느낌으로는 꽤 괜찮은 책인 것 같다. 요즘 파이토치에도 관심이 가서 한번 열심히 읽어봐야겠다.

    오렌지파이에 구글어시스턴트 한국어 설치하기

    이번에 알리에서 중국산 라즈베리파이로 잘 알려진 오렌지파이 (OrangePI PC)를 구입하게 되었다. (알리익스프레스의 오렌지파이 공식 판매처에서 구입) 가격은 오렌지파이의 절반인데 성능은 좀 더 좋다. 그래서 이번에는 마침 필요했던 한국어 구글어시스턴트를 오렌지파이에 설치해 보기로 했다. [설치방법] 1. https://www.armbian.com/orange-pi-pc/#kernels-archive armbian 홈페이지에서 본인의 오렌지파이 종류에 맞는 데스크톱 운영체제를 다운 받는다. 여기서는 OrangePI PC버전이다. 다운받은 후 편한 방법으로 SD카드에 설치하면 된다. 데스크톱 말고 서버 버전으로 설치해도 무방하나 필자는 다른 기타 작업을 위해 데스크톱 버전을 설치했다. 2. 2018/0..

    라즈베리파이용 7인치 LCD 모니터 구입

    링크 : https://www.aliexpress.com/item/Raspberry-Pi-7-Inch-1024-600-LCD-Screen-Display-Monitor-with-Driver-Board-HDMI-VGA-2AV/32654958565.html?spm=a2g0s.9042311.0.0.206e4c4dANu5Hy 사실 엄밀히 말하면 HDMI를 지원하기 때문에 꼭 라즈베리파이용은 아니지만 유용하게 사용 가능한 7인치 LCD 모니터이다. 알리에서 구입했는데 아래처럼 잘 포장되어 왔다. 조립식인데 그리 어렵지는 않다. 전원용 USB 케이블을 주기 때문에 5V환경에서 사용이 가능하다. 조립후 노트북 화면을 출력해 테스트 해보았다. 물론 저렴한 LCD이다 보니 화질이나 밝기가 마음에는 안드나 이정도면 훌륭하다..

    matplotlib, OpenCV로 데이터 clustering 하기 (cluster 개수 없이)

    clustering(군집화)는 데이터 분포를 분석하여 비슷한 집단끼리 묶어주는 기술이다. 최근 딥러닝 분야에서 이 기술을 많이 사용하는데, 꼭 딥러닝 뿐만 아니라 다양한 문제에서 유용하게 사용할 수 있다. 예를들어 필자가 이 알고리즘을 이용하는 이유는 대학교에서 출전하는 자율주행차 대회 때문인데, Lidar에서 받아온 좌표값을 분석하기 위해 사용될 예정이다. 아래와 같이 고깔 장애물을 피할때 clustering 기법을 이용하면 편하게 최적 경로의 알고리즘을 구현할 수 있을 것 이다. 사실 clustering 알고리즘은 구글링을 하면 쉽게 찾을 수 있는데 대부분의 코드가 cluster의 개수를 정해줘야 한다. 하지만 최적의 cluster의 개수도 찾을 수 있다면 더욱더 좋을 것이다.마침 stack over..

    텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #4 - 모델 실행

    이전글 2019/01/30 - [프로그래밍/딥러닝] - 텐서플로우, 케라스로 크롬 공룡게임 AI 만들기 #3 - 데이터 학습 및 모델 만들기 에 이어서 마지막 단계이다. 직전 단계에 제작한 모델에는 장애물에 좌표에 따른 점프 타이밍이 학습되어있는 상태이다. 이 모델을 실행하는 방법은 아래와 같다. AI_play.py from keras.models import load_model import numpy as np from PIL import ImageGrab import cv2 import cv2 as cv import keyboard model = load_model('dino.h5') template1 = cv.imread('images/cactus1.png', 0) template2 = cv.imr..

# 테스트용