본문 바로가기

분류 전체보기

OpenCV(Python) + PyQt OpenCV로 영상처리나 컴퓨터 비전을 처리하고 나서 결과를 화면에 표시하려면 결국 창을 띄워야 하는데, OpenCV의 imshow() 함수 만으로는 역부족인 경우가 많습니다. 파이썬 언어에서 인기 있는 멀티 플랫폼 GUI 프레임웤인 PyQt5로 멋지게 GUI를 구현하고 영상만 OpenCV로 처리해서 보여주고 싶을때 어떻게 하는지 설명하는 포스트입니다. PyQt를 설치하고 사용을 어떻게 하는지는 여러 블로그와 유튜브에 올라와 있는 강좌를 이용해서 공부하시구요. 여기서는 단순히 OpenCV-Python가 읽은 이미지를 어떻게 PyQt로 출력 하는지만 설명합니다. OpenCV-Python에서는 모든 이미지 정보는 NumPy의 ndarray 객체에 담겨 있습니다. 결국 ndarray 객체를 어떻게 PyQt로 .. 더보기
객체인식 = 라즈베리파이 + Coral EdgeTPU 구글에서 Coral Edge TPU라는 제품을 내 놓은게 좀 됐습니다. https://coral.withgoogle.com/products/accelerator/ 이것을 라즈베리파이에 USB로 연결하면 빠른 병렬 연산이 가능해 지기 때문에 실시간 객체 인식도 가능합니다. 이번 포스트에서 어떻게 하는지 단계적으로 알아보겠습니다. 장치 구매 먼저 Coral Edge TPU 장치를 구매해야겠죠. 위 링크에서 "BUY" 버튼을 누르면 여러 distributor 목록이 나오는데 국내에서 구매하기에는 Mouse가 적당해 보입니다. https://www.mouser.com/ProductDetail/Coral/G950-01456-01?qs=sGAEpiMZZMve4%2FbfQkoj%252BNzzHFZgWGqIphwvwT.. 더보기
왜 OpenCV는 BGR 포맷을 쓸까? OpenCV를 처음 접하고나서 제가 가졌던 첫 의문이었습니다. 왜 OpenCV는 BGR 포맷을 쓸까? 대부분의 사람들에게 익숙한 RGB를 쓰지 않고 말이죠. 이 때문에 RGB 포맷으로 바꾸려면 파이썬의 경우 아래와 같은 코드를 꼭 거쳐야 하는 불편함이 있습니다. rgb = bgr[:,:,::-1] 저는 의문이 한번 들면 그게 쓸모가 있든 없든, 문제 해결에 도움이 되든 안되든, 그 이유를 찾아야 속이 후련해 지는 타입입니다. 물론 이 주제에 대해 찾아 본건 아주 오래전이기는 합니다만, 머리가 복잡한 일이 생겨서 오랜만에 과거에 메모해두었던 노트들을 뒤젹이다 이 주제가 눈에 띄어서 포스팅해 봅니다. 일단 구글링을 했더니 OpenCV와 관련해서 많은 포스팅을 하는 learnopencv.com의 사타야 말릭 .. 더보기
OpenCV 책 출간 제가 OpenCV를 주제로 하는 책을 출간했습니다. 제목은 “파이썬으로 만드는 OpenCV 프로젝트, 간단한 영상 입출력부터 머신러닝까지” 입니다. 책은 이미 온오프라인 서점에서 구매할 수 있습니다. http://www.yes24.com/Product/Goods/71534451?scode=032&OzSrank=2 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=187390704 제 첫 출판 서적이라서 매우 고무되어있습니다. 많은 저자들이 스스로 자기 책을 “졸저”라고 말하는 경우가 많은데요, 예전에는 저는 그걸 이해하지 못했어요. 얼마나 대충 썼으면 스스로 졸저라고 하느냐는 생각이었는데요, 제가 직접 책을 내고 보니 졸저라고 하지 않을 수 가 없네요. 원고의 뒷.. 더보기
멀티캠퍼스 강좌 개설 오랜만에 블로그 포스팅인데 광고글이네요.올해 제가 국내 IT교육 센터의 1등으로 자리잡고 있는 멀티캠퍼스에 정규 과정으로 라즈베리파이 관련 강좌를 개설했습니다. 강좌 이름은 "라즈베리파이와 파이썬을 활용한 IoT 프로젝트"입니다.과정 링크는 아래와 같구요.http://ksp.multicampus.com/ksp/servlet/controller.gate.course.MOffLinkServlet?p_subj=Q29980 과정 내용은 제가 살고 있는 땅콩집에 설치한 스마트 홈을 구현하는데 필요한 모든 내용을 담고 있습니다.단순히 어떻게 만드는가만 다루는게 아니라 어떤 원리로 동작하는지를 전달하는데까지 목적을 두고 있으니 어떤 강좌보다 내실있을 꺼라고 확신합니다. 블로그에 강의를 듣고 싶다는 의견이 종종 있었는.. 더보기
라즈베리파이 NodeJs 설치 라즈베리파이에 NodeJs를 설치하는 방법을 설명합니다. 1. 자신이 사용하는 라즈베리파이 CPU 아키텍처 알아보기 nodejs.org에서 ARM용으로 빌드된 바이너리 파일을 다운로드 받으려면 라즈베리파이의 CPU 아키텍쳐를 알아야 합니다. 아래 명령어로 확인합니다. pi@raspberrypi:~ $ lscpu 제가 사용하는 라즈베리파이3B 에서 확인한결과 armv7입니다. 원래 라즈베리파이3 SoC인 BCM2837은 ARM Cortex A53(ARMv8)이지만 라즈비안 운영체제가 32비트이기 때문에 ARMv7l로 나타나니까 이에 맞게 설치해야 합니다. 2. nodejs.org 에서 알맞는 바이너리 다운로드 주소 얻기 http://nodejs.org 사이트에서 메인 페이지에 “Other Download”.. 더보기
라즈베리파이 카메라 OpenCV 라즈베리파이에 OpenCV를 설치하고 나면 카메라로 부터 이미지를 얻고 싶을 텐데요. 라즈베리파이에 카메라를 연결해서 OpenCV를 프로그래밍 하는 방법을 알아 보려고 해요. 라즈베리파이에 카메라를 연결 할 수 있는 방법은 2가지 입니다. 1. 라즈파이 카메라를 CSI 포트에 연결해서 사용 2. 웹 캠을 USB에 연결해서 사용 위 2가지 방법 각각은 물론 모두 사용하는 것도 가능합니다. USB 웹캠 USB 타입의 웹캠은 무얼 사야하나 고민이 될텐데요, “UVC(USB video device class)”를 지원하는 웹캠이면 아무것이나 잘 인식이 됩니다.(https://en.wikipedia.org/wiki/USB_video_device_class) 보통 오픈마켓에서 웹캠을 검색하면 대부분 UVC 지원이라.. 더보기
라즈베리파이 OpenCV 설치(빌드 없이 설치파일로) Update : 2018.02.02 , OpenCV 3.4.0Update : 2020.01.07라즈비안 버스터 버전에서 종속 라이브러리가 달라져서 설치가 되지 않는것으로 보입니다. 버스터 버전에서부터는 제가 제공하는 설치 파일 말고 piwheel.org에서 제공하는 버전을 사용하시는게 좀 더 편하실것 같습니다. sudo pip3 install opencv-contrib-python 으로 설치하시고 아래 명령어로 종속 라이브러리를 추가 설치해 주시면 될겁니다. sudo apt install libqt4-test libhdf5-dev libatlas-base-dev libjasper-dev libqtgui4 라즈베리파이에 OpenCV를 설치하는 방법을 알아 봅니다. OpenCV는 인텔에서 시작해서 현재는 오.. 더보기
모닝 자동차 리모콘 수리(케이스 교체) 아내가 사용하는 올뉴 모닝 자동차 리모콘 키가 아래 사진 처럼 너덜 너덜 해졌습니다. 열림/닫힘 버튼을 손톱으로 눌러서 그런지 커버가 다 찢어져서 테잎으로 감아 주었는데, 결국 테잎도 찢어지고 알맹이 버튼이 도망가버리는 바람에 열림 버튼을 누를 수가 없게 되어 버렸습니다. 이쑤시게로 누르거나 운전석에 키를 꼽아서 수동으로 열거나 해야 하는데 무척 불편해 하더라구요. 정품 수리가격을 알아 보았더니 헐~ 리모콘 통째로 교체해야 해서 리모콘 가격 55천원에 열쇠 깍는 가격1만원이랍니다. 국내 오픈 마켓에 찾아보니 찢어진 커버만 판매를 하는데, 그것도 오려서 강력접착제로 붙이는 방법입니다. 게다가 버튼 알맹이를 잃어 버린 경우에는 쓸모 없는 방법이라서 패쓰하구요. 다음으로 알리익스프레스를 찾아 보니 역시나 더미.. 더보기
맥북에어 배터리 교체하기 맥북에어에 돈 참 많이 씁니다.ㅎㅎ 512SSD도 갈았는데… JetDrive로 맥북에어 SSD확장기 :http://blog.xcoda.net/81 제것은 2012 mid 맥북에어인데요. 최근 동영상만 플레이하거나 플레이하고나면 맥북에어가 셧다운되고, 다시 부팅하다가 셧다운되고… 무한 반복 리부팅 현상이 일어나서 잘 생각해보니 배터리가 순식간에 광탈하는 현상이 일어나는 것이 떠올랐습니다. 결국 배터리가 0%인데, 전원 어뎁터를 연결해도 부팅하다가 전원이 부족해서 꺼졌다가 다시 켜지는 일이 반복되었던 겁니다. 그 뒤로 전원 어텝터를 연결해 놓고 30여분 농땡이를 치다가 켜면 잘 켜지는 겁니다. 네, 배터리 수명이 다해서 그런것 같네요. (아마 충전 회로에도 문제가 있는 듯… ) 최근 맥북에 윈도즈10을 설치.. 더보기
원격 터미널로(윈도우, 맥) 라즈베리파이 GUI 띄우기 VNC로 원격 데스크탑 연결이 아니라 터미널에서 X-Window 띄우기 라즈베리파이의 화면을 윈도우나 맥에서 띄우는 방법은 VNC나 Xrdp를 이용하면 되기는 합니다. 그런데, 원격 데스크탑을 연결해서 작업하다보면 아무래도 반응이 느릴 수 밖에 없습니다. 그래서, 일반적으로 터미널 하나 열어서 ssh로 접속해서 명령어 위주로 작업하는 것이 빠른데요. 터미널로 작업하던 중에 작업한 결과가 GUI가 있는 X-Window 화면을 띄워야 할때가 필요하면, 다시 VNC나 Xrdp를 이용해서 원격 데스크탑으로 접속해야 하는 것은 많이 불편합니다. 이번 포스팅에서는 VNC나 Xrdp 없이 단순한 ssh 터미널에서 라즈베리파이의 X-window 화면을 윈도우와 맥에서 띄우는 방법을 차례대로 설명하겠습니다.(사실, 라즈.. 더보기
키보드/모니터 없이 랜선만으로 raspberry pi 사용하기- 인터넷 공유 앞서 라즈베리파이를 키보드/모니터/마우스 없이 사용하는 방법을 시리즈로 포스팅 했습니다. http://blog.xcoda.net/83 2017.10.12 추가분 ssh가 보안 문제로 기본 상태에서는 비활성화 되어 있어서 아래의 두가지 방법 중 하나로 먼저 ssh를 활성화 시키고나서 진행해야 합니다. 1. 시리얼 모니터로 접속해서 ssh를 활성화 한다.2. SD 카드를 PC에 연결해서 ssh라는 이름의 파일을 생성한다. (확장자 없고 내용도 무관함, 부팅 과정에서 이 파일의 유무에 따라 ssh 활성화 후 해당 파일은 삭제됩니다.)참고 : https://www.raspberrypi.org/documentation/remote-access/ssh/ 이번에는 시리얼 tty말고 다른 방법으로 Raspberry-P.. 더보기
라즈베리파이 GPIO에 이름표를 붙이자! Raspberry Leaf Raspberry-pi(라즈베리파이) GPIO 헤더핀에 작은 종이를 붙여서 어떤핀이 어떤핀인지 알수 있게 해주는 Raspberry Leaf를 소개해 봅니다. [Raspberry Leaf, 출처 : https://www.raspberrypi.org/blog/raspberry-leaf/ ] Raspberry-pi(라즈베리파이) GPIO는 Arduino(아두이노)의 GPIO 처럼 친절하지 않습니다. 각 핀이 무엇인지 알려주는 핀헤더 번호나 역할에 대한 프린트가 없기 때문입니다. [Arduino(아두이노) Pin header] [Raspberry-Pi Pin header] 그래서 Raspberry-pi(라즈베리파이)에 GPIO를 이용해서 회로를 구성할 때 무척 시간이 오래 걸리고, 잘 못 연결하는 경우가 많습니.. 더보기
영어 읽기/독해 연습을 위해 내 수준에 맞는 책 고르기 영어를 잘하기 위해서는 읽기/쓰기/듣기/말하기 4가지 능력을 두루 갖추어야 하는데, 그 중에 읽기는 가장 기본이 되는 부분이고 말은 못해도 읽기는 할 줄 알아야 그나마 살아 가는데 편합니다. 특히 저 같은 개발자에게는 한글 컨텐츠만으로 정보와 지식을 채워 가는 것은 너무 느리고 부족합니다. 한글 컨텐츠에만 의존하는 방식으로는 고수는 커녕 중수도 넘기 힘듭니다. 영어, 특히 읽기/독해를 빠르고 정확히 하는 것은 개발자 뿐만아니라 특정 영역에 전문성을 키우는데 무척 중요합니다. 그런데 그렇게 하려면 영어 컨텐츠를 많이 읽어 봐야 합니다. 어린시절 부터 동화책을 접하고 만화책을 접하고 교과서, 소설, TV 예능 프로그램 자막 등을 많이 읽으면 당연히 빠르고 잘 읽게 됩니다. 마치 한글을 잘 읽고 이해하는 것 .. 더보기
라즈베리파이 모니터없이 원격에서 화면 보기(VNC 화면 공유) 이전 포스트에서 라즈베리파이 개발환경 꾸미기에 대해서 시리즈로 연재했는데요, 주요 컨셉은 라즈베리파이를 하나의 컴퓨터 처럼 모니터, 키보드, 마우스 연결해서 쓰는 형식이 아닌 개발보드로 연결해서 터미널로만 연결해서 사용할 수 있는 방법에 대해서 알아 보았어요. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기 Wifi 설정 / 기본 설정하기 파이썬 + Eclipse로 라즈베리파이 개발하기 라즈베리파이에 NodeJs 설치하기 NodeJs + Eclipse로 라즈베리파이 개발하기 C/C++ Cross Compiler(Tool Chain) 설치하기 Eclipse + C/C++ 로 라즈베리파이 개발하기 그런데, 때에 따라서는 라즈베리파이 데스크탑 환경, 즉 GUI를 출력하는 프로젝트를 해야.. 더보기
라즈베리파이 개발환경 꾸미기 #8. Eclipse + C/C++로 라즈베리파이 개발하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기 Wifi 설정 / 기본 설정하기 파이썬 + Eclipse로 라즈베리파이 개발하기 라즈베리파이에 NodeJs 설치하기 NodeJs + Eclipse로 라즈베리파이 개발하기 C/C++ Cross Compiler(Tool Chain) 설치하기 >> Eclipse + C/C++ 로 라즈베리파이 개발하기 더보기
라즈베리파이 개발환경 꾸미기 #7.C/C++ Cross Compiler(Tool Chain) 설치하기(윈도우/맥) 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기Wifi 설정 / 기본 설정하기파이썬 + Eclipse로 라즈베리파이 개발하기라즈베리파이에 NodeJs 설치하기NodeJs + Eclipse로 라즈베리파이 개발하기>> C/C++ Cross Compiler(Tool Chain) 설치하기 더보기
라즈베리파이 개발환경 꾸미기 #6. NodeJs + Eclipse로 라즈베리파이 개발하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기Wifi 설정 / 기본 설정하기파이썬 + Eclipse로 라즈베리파이 개발하기라즈베리파이에 NodeJs 설치하기>> NodeJs + Eclipse로 라즈베리파이 개발하기 Show view > Other”에 가셔서 “Show View”창을 띄웁니다. “Show View”창에서 “Team > Synchronize” 항목을 선택합니다. 그러면 Synchronize 뷰가 나타나는데, 이렇게 해 놓고 파일을 약간 수정해 봅니다. 파일을 수정하고 저장하면 아래의 Synchronize View에 수정된 목록이 나타나고, 선택하고 “Put” 해서 적용할 수 .. 더보기
라즈베리파이 개발환경 꾸미기 #5. 라즈베리파이에 NodeJs 설치하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기Wifi 설정 / 기본 설정하기파이썬 + Eclipse로 라즈베리파이 개발하기>> 라즈베리파이에 NodeJs 설치하기 더보기
라즈베리파이 개발환경 꾸미기 #4. 파이썬 + Eclipse 로 라즈베리파이 개발하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기Wifi 설정 / 기본 설정하기>> 파이썬 + Eclipse로 라즈베리파이 개발하기 Eclipse Marketplace 에서 “python”으로 검색해서 나오는 “PyDev”를 설치하면 됩니다. “Install” 버튼을 눌러 설치를 진행하면 뜨는 창에서 “Next” 버튼 만 눌러 주면 설치는 문제 없이 진행됩니다. Eclipse에 PyDev를 설치하고 나서 PyDev가 Python을 인식할 수 있도록 설정을 해줘야 합니다. Eclipse Preferences 화면에서 “PyDev” > “Interpreters” > “Python Interpre.. 더보기
라즈베리파이 개발환경 꾸미기 #3. 유무선랜 설정/ 기본 설정하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 키보드 모니터 없이 라즈베리파이 Login 하기>> Wifi 설정 / 기본 설정하기 Seoul 을 선택합니다 Change Local > en_US.ISO-8859, en_US.UTF-8, ko_KR.EUC-KR, ko_KR.UTF-8 을 선택합니다. Default : en_US.UTF-8 그 밖에 9 Advanced Options 메뉴를 이용해서 SSH 연결 설정과 Serial Shell login 설정 등을 변경 할 수 있습니다. 앞서 USB-to-Serial 장치로 로그인 할 수 있었던것은 바로 Serial Shell login설정이 기본으로 켜져 있기 때문입니다. 만약, 라즈베리파이의.. 더보기
라즈베리파이 개발환경 꾸미기 #2. 키보드 모니터 없이 라즈베리파이 Login 하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. 라즈비안 OS 설치하기 >> 키보드 모니터 없이 라즈베리파이 Login 하기 키보드 모니터 없이 라즈베리파이 Login 하기 더보기
라즈베리파이 개발환경 꾸미기 #1. 라즈비안 OS 설치하기 이 포스트는 라즈베리파이 개발환경 꾸미기를 주제로 아래와 같은 시리즈 연재로 이루어 집니다. >> 라즈비안 OS 설치하기 더보기
JetDrive 로 맥북에어 SSD 확장기(실패 극복기) 제가 사용하는 노트북은 2012년에 구매한 맥북 에어(MacBook Air)입니다. 이 노트북에는 256GB SSD가 달려 있는데, 최근 몇 년동안 디스크 공간 부족에 시달리고 있었습니다. 제가 주로 강의를 하기 때문에 강의 실습을 꼭 윈도우즈에서 테스트 해봐야 하는 경우가 많고, 때에 따라서는 윈도즈에 설치된 가상머신에서 리눅스를 돌려서 테스트 해야 하는 경우도 많았습니다. 그러다보니 맥에서 가상머신으로 윈도즈를 올려서 거기서 다시 가상머신으로 리눅스를 돌리는 어이없는 상황이 벌어지기도합니다. 그래서 어쩔 수 없이 부트캠프를 이용해서 윈도즈와 듀얼 부팅을 하는데, 당연히 공간이 부족하겠죠. 그러다가 JetDrive라는 제품이 있다는 것을 알았습니다. 이 제품은 맥북 SSD 교체를 작정하고 겨냥해서 Tr.. 더보기
아두이노 디지털 핀에 24V 입력받기(저항으로 전압강하, 전압분배) 아두이노나 라즈베리파이 같은 보드는 GPIO라는 입출력 핀들을 제공하는데요. 입출력 신호로 사용하는 전압은 각각 5v와 3.3v입니다. 이런 신호를 TTL(Transistor to Transistor Logic, 네트웍에서 말하는 TTL하고 다름)라고 하는데요. 보통 자체 동작전압을 가지고 입출력을 받는 회로를 만드는 경우에는 아무 문제가 없는데 별도 자체 전원으로 동작하는 외부 장치에서 신호를 받는 경우는 전압 때문에 입력을 받을 수가 없는 경우가 많습니다. 가장 대표적인 예가 PC하고 연결할때 시리얼포트를 쓰는 경우가 있는데, PC는 HIGH/LOW를 +12V/-12V로 표현하는데, 이걸 직접 아두이노나 라즈베리파이에 연결하면 당연히 보드가 타버리게 되죠. 또 다른 예로는 아파트나 사무실 천정에 하나.. 더보기
DIY 스마트 홈 프로젝트 라즈베리파이와 아두이노를 이용해서 DIY Smart Home 시스템을 만들어 봤습니다. 예전에 모형을 이용해서 스마트홈 시스템을 만들었다고 포스팅한 적이 있었지요. 이걸로 작년 한해 IoT강의도 많이 얻어서 먹고 살기도 했는데요. 이번엔 모형이 아닌 진짜 제가 살고 있는 땅콩집에 설치해서 사용할 수 있는 스마트홈 프로젝트를 진행했습니다. 전체 구성도는 아래와 같습니다. 라즈베리파이에 NodeJs와 MySQL을 설치해서 메인 서버로 사용하구요. NodeJs의 OnOff 모듈을 이용해서 GPIO를 제어할 수 있습니다. Express로 웹 서비스를 할 수 있구요. 아두이노는 NFC 리더를 연결해서 현관 밖에 설치하고 출입 제어 시스템으로 사용합니다. 아두이노와 라즈베리는 시리얼(UART) 통신으로 연결되어 있.. 더보기
아두이노로 알아보는 적외선 센서 아두이노와 같은 마이크로 콘트롤러를 이용해서 할 수 있는 것 들 중에 적외선을 이용하면 할 수 있는 것이 많은데요, 이번에는 적외선을 인식하는 센서와 적외선을 만들어내는 LED를 이용해서 실험해보고 원리를 알아 보려고 합니다. 이번 실험에서는 적외선LED와 수신기를 이용해서 장애물 센서와 근접센서를 만들어 볼겁니다. 이 실험을 위해서 필요한 부품은 아래와 같습니다. 포토트랜지스터(적외선 수신) 1개 포토다이오드(적외선 송신) 1개 저항 1M옴 , 저항 40옴~100옴 중 1개 우선 적외선을 인식하기 위해서는 포토트랜지스터(Phototransister)라는 것이 필요합니다. 이름이 어렵게 느껴지지만 별것 아닙니다. 가격도 저렴한 것은 130원 밖에 안합니다. 이번 실험에서 사용할 부품은 아래 링크에서 구입.. 더보기
풀업(Pull-up)저항,  풀다운(Pull-down)저항 아두이노와 같은 메이커들를 위한 플랫폼은 물론이고, 임베디드 개발 영역에 꼭 필요한게 전자회로 관련 지식인데요. 저 같은 소프트웨어 개발자 출신들이 이 분야에 들어서서 막막한게 바로 전자회로 분야 입니다. 그 중에서도 처음으로 만나는 장애물이 바로 풀업(Pull-Up), 풀다운(Pull-Down)저항을 이해하는 것같아서 오늘은 이것에 대해 이야기 해보려고 합니다. 아두이노나 AVR 등을 처음 접하면 LED 깜박이는 것 다음으로 하는 것이 스위치를 누르고 뗐을때 디지털 신호를 입력 받는 것일 겁니다. 아래 그림은 바로 그때 보라고 만들어 놓은 아두이노 사이트에 있는 버튼 스위치 입력 예제에서 가져온 그림입니다. 여기에 스위치와 함께 필요로 하는 부품이 바로 저항입니다. 근데 이게 왜 필요한 것인지, 그리고.. 더보기
맥북(에어)와 함께 쓰면 좋은 주변 장치들 추천 맥북(에어)와 함께 쓰면 좋은 주변 장치들 추천 제가 맥북을 사용한지가 2009년 말 부터 였으니까, 이제 만5년이 훌쩍 넘었군요. 처음엔 맥북 화이트를 사용하다가 무게가 무거워서 휴대도 불편하고 성능도 떨어져서 지금은 아내에게 주고 저는 맥북에어를 사용하고 있습니다.뭐 제가 애플빠나 맥빠는 아닙니다. 딱히 맘에 드는 물건이 없어서 쓰는 것 일뿐... 노트북이라는게 다 그렇듯이 마우스며, USB 허브 같은 주변 장치들이 필요한데요, 제가 그간 써보면서 가성비면에서 아마도 최상의 조합인 것들 몇가지를 소개할까 합니다. 제 블로그를 방문해 보신분은 아시겠지만, 저는 뭔가를 리뷰할때 개봉직후나 하루 또는 한달 사용기 따위는 적지 않습니다. 적어도 6개월 이상 사용해야 장단점이 제대로 보이기 때문입니다. 이제 .. 더보기
안드로이드 SoundPool(사운드 풀)로 효과음 내기 안드로이드에서 효과음과 배경음을 내는데 필요한 SoundPool 이라는 것의 사용법을 살펴봅니다. 안드로이드 프로그래밍에서 소리를 낼 수 있는 방법은 많은데요, 대표적으로 MediaPlayer를 사용 할 수 있습니다.그런데, 게임이나 기타 앱에서 특정 행동에 따른 효과음 또는 배경음(BGM)으로 사용하려고 할때에는타이밍 이슈가 있을 수 있습니다. 다시말해 정확한 그 시점에 준비된 소리가 나는것에 대한 이슈가 있습니다.이름에서 풍기는것과 같이 필요한 사운드를 미리 로드해놓고 필요할때 출력만 하겠다는 것입니다. 이것을 해결하기 위해 있는 API가 android.medial.SoundPool 입니다.순차적으로 사용법을 알아 보겠습니다. 1. SoundPool 생성 SoundPool sound = new Sou.. 더보기