목록RaspberryPi (73)
행복한 하루
안녕하세요. 이전 내용에서 디바이스 드라이버 소스의 간단한 형태를 잡아 보았다면 이번에는 디바이스에 장치 번호를 할당해서 접근하는 방법을 알아보도록 하겠습니다. 커널 레벨, 유저 레벨 등의 이론적인 내용은 아주 간략하게 설명했고, 실습 위주로 정리해보았습니다. 1. 사전 준비 이전 파일을 좀 더 디바이스 같은 느낌(?)으로 파일 이름을 변경합니다. (작업하는 디렉터리 이름은 day2로 변경했습니다. pi@raspberrypi:~/DriverStudy/day2 $ mv day1_module.c dev_nr.c 그러면 Makefile도 같이 내용을 수정해줍니다. obj-m += dev_nr.o 2. 디바이스 드라이버 소스 수정 pi@raspberrypi:~/DriverStudy/day2 $ vim dev_n..
안녕하세요. 3번째 Quest는 소프트웨어 구성에 관한 내용으로 개발하는 데 사용한 소프트웨어 툴, 소프트웨어 구성도, 사용한 오픈 소스 활용 정보, 소스코드를 올리는 것입니다. 사실 Quest 3때는 업무 때문에 진행을 잘하지 못해서 부품 제어 간단한 테스트만 했고, 메인 소스는 간단하게 틀만 생각해서 실제적으로 코드는 마지막 Quest에 완료를 했습니다. 1. 개발 툴 목록 - Visual Studio Code - WiringPi Library - gcc version 10.2.1 2. 소프트웨어 구성도 1. 프로그램이 시작하면 DHT11 센서에서 실내외 온도를 측정합니다. 2. 측정한 온도와 미리 설정해 둔 온도와 비교하여 설정한 온도보다 높아지거나 같으면 팬을 작동시킵니다. 3...
안녕하세요. Quest1을 진행하고 Quest 2 내용을 작성해보았습니다. Quest 2에서는 하드웨어 및 부품 준비하기라는 내용을 작성을 하시면 됩니다. 2주간 동안 필요한 부분을 찾고 준비해서 스펙 적고 대략 이렇게 연결될 것이라고 작업한 것을 올리면 됩니다. OrCad를 가지고 계시면 회로도까지 올리시면 좋을 것으로 생각됩니다. 그리고 전체적인 일정도 확인해줍니다. 1. 사용 부품 목록 - 18650 보호 배터리 - 리튬배터리 3.7V 셀용 충전 겸 가변 부스트 - 토양 습도 센서 - DHT11 온습도 센서 - IRF MOSFET 드라이버 모듈 - 라즈베리파이 제로 W - 수중펌프모터 - RGB Flexible 코팅 LED 2. 부품의 사양과 특징 기술 1) 18650 보호 배터리 - 설명 : PC..
안녕하세요. 이번에는 ImageEditor를 Raspberry Pi 4에서 실행하는 것을 알아보도록 하겠습니다. Qt 가 Cross Compile을 지원해주도록 설계가 되어 있다 보니, 프로젝트(.pro) 파일에서 라이브러리 등 경로를 잘 설정해주면 여러 OS에 컴파일할 수가 있습니다. 1. 사전 준비사항 - 이전 글( “Raspberry pi CM4에 OpenCV 4.6.0과 Contrib 모듈 설치해보기” )에서 Raspberry Pi 4에 OpenCV 4.6.0와 Qt를 설치했다는 가정하에 아래 내용을 진행할 수 있습니다. Raspberry pi CM4에 OpenCV 4.6.0과 Contrib 모듈 설치해보기 안녕하세요. 에지 컴퓨팅이라고 해서 단말 장치에서 가까운 위치에서 컴퓨팅을 하는 것을 말합..
안녕하세요. 이전 글을 따라 OpenCV 4.6.0을 설치한 다음, Bullseyes 32bit에서 libcamerasrc를 사용할 생각으로 gstreamer 최신 버전(1.9.2 혹은 1.20.x)을 다운로드하여서 컴파일할 경우 아래와 같은 컴파일 에러가 발생했습니다. 현재 상황에서는 gstreamer최신 버전을 사용하고자 한다면, Buster OS 버전 혹은 64bit Bullseye 버전에서 gstreamer 소스 컴파일하라고 조언합니다. Buster 버전은 문제가 없을 것으로 생각되는데, 64bit Bullseye 테스트해보지 않아서 현재로서 된다 안된다고 말씀드릴 수는 없습니다. 그러나 패키지로 설치된 버전(1.18.4)을 사용할 경우 문제없이 작동했습니다. 1. gstreamer 최신 버전을 ..
안녕하세요. 라즈베리 파이를 사용하면서 여러 장치들 제어하기 위해서 메인 소스상에서 추가해서 사용했는데, 그것이 아니라 필요에 따라서 등록하고 해제해서 사용할 수 있도록 디바이스 드라이버 모듈로 만들어 보면 좋겠다 생각하였습니다. 그리고 외국분이 작업한 내용이 있어서 참조하면서, 확인해보도록 하겠습니다. 샘플 예제는 Raspberry Pi 3이지만 현재 작업하는 환경은 Raspberry Pi 4 bullseye 32bit에서 테스트 진행하였습니다. 참고로, 라즈베리 파이 전용 디바이스 드라이버라고 하기는 그렇고, 하드웨어 핀과 같은 특정 부분을 제외하면 리눅스 디바이스 드라이버라고 생각해도 될 것 같습니다. 1. 개발에 필요한 프로그램 설치 - 디바이스 드라이버 개발에 필요한 커널 헤더와 드라이버 소스를..
안녕하세요. 이번에 e4ds make 사이트에서 임베디드를 가지고 프로젝트하는 것이 있어서 참여해보았습니다. 사실 가지고 있는 부품으로 무엇을 만들어볼까 하면서 미루고 있다가 참여하면 뭐라도 하겠지라는 생각에 참여하였습니다. 그리고 무료로 받은 Arm 보드도 있는데 이것은 별도로 제어하는 내용을 올려보도로 하겠습니다. 콘테스트 정보를 간략하게 보면 아래와 같습니다. 규모는 크지 않고, 작게 행사를 진행하며 자신이 하고자 하는 프로젝트의 한 부분을 테스트한다고 생각해서 참여해보아도 좋지 않을까 합니다. 내용은 사이트에 가져온 내용을 올려보았습니다. 1. 콘테스트 정보 콘테스트 형식 : 퀘스트 형 콘테스트 명 : Show me the 띵’s : 헬스케어 (Healthcare) 참가자 모집 기간 : 2022년..
안녕하세요. 라즈베리 파이 프로그램에서 쓰레드를 2개 이상 사용할 경우 쓰레드 간에 데이터를 주고받아야 하는 경우가 있습니다. 혹은 인터럽트 처리를 중 값을 전달해야 할 경우도 있습니다. 단순한 장난감 자동차를 예를 들어 개발한 한다고 했을 경우, 핸들 조작을 감지하는 쓰레드와, 앞뒤를 감지하는 센서 인터럽트 쓰레드가 필요하고, 이 조작에 따라 모터가 동작하는 쓰레드가 필요하다고 가정합니다. 이럴 경우 쓰레드 간에 메시지를 주고받아야 하는 경우에 메시지 큐를 통해 주고받을 수 있습니다. 대략적은 그림으로 표현하자면 다음과 같습니다. 1. 소스 확인 - Queue, Thread 호출에 필요한 라이브러리를 import 합니다. - Queue 크기를 설정해서 메모리에 초기화합니다. - Queue에 데이터를 넣..
안녕하세요 Raspberry Pi Zero 2 W는 onboard antenna로 사용하고 있습니다. 그래서 박스 안에 넣거나 하면 수신감도가 확 떨어지는 것을 알 수 있습니다. 그래서 생각한 것이 외부로 안테나로 돌출시키면 수신도 되고 성능도 개선될 것이라고 생각하고 작업해보았습니다. 유튜브나 참고사이트를 보면 배선 패턴을 잘라내고 작은 저항과 U.FL 커넥터를 붙이도록 되어 있는데 일반인이 하기는 쉽지도 않을뿐더러 돋보기, 플럭스(Flux) 등 구비하고 있어야 작업이 가능해 보였습니다. 그래서 포기할까 하다가 똑같이 하지는 않고 간단한 방법으로 조금 다르게 시도해보았습니다. 1. 작업에 필요한 부품 - 0.4mm 납(얇을수록 좋음), U.FL Connector(U.FL-R-SMT-1(40)), PCB..
안녕하세요. 라즈베리 파이 제로 W를 사용해본 결과 UI 프로그래밍 하기는 힘들다는 생각이 들었습니다. 그리고 OpenCV 컴파일 시간 등 작업하는 시간이 오래 걸려서 간단한 CCTV 모니터링 정도로 사용할 수 있을 것으로 보였습니다. 즉, 화면 출력하려면 해상도를 낮추어서 작업을 하는 것에 적합하다고 생각됩니다. 최근에 향상된 Zero 2 W 버전이 나왔다고 해서 확인해보았습니다. 라즈베리파이 사이트에서는 15달러라고 컴퓨터라고 말하고 있지만, 지금 반도체 대란으로 국내에서 구하기 힘들고 지금 시점에 구매하려면 외국에서 원래 가격에 몇 배를 주고 구매해야 합니다. 1. Raspberry Pi Zero 2 W Specification 2. 제품 구성 - 보드만 구매하면 발열로 인해 성능 저하가 생길 것 ..
안녕하세요. 현재 많이 사용하고 있는 라즈베리 파이는 eMMC가 없는 Micro SD card 형태를 가지고 있습니다. 그래서 나온 버전 중에 하나가 CM4(Compute Module)이라는 것이 있습니다. 모듈 자체에 WiFi와 eMMC가 장착된 버전입니다. 필요에 따라 Lite 버전이라고 해서 WiFi, eMMC도 제거된 버전도 있습니다. 현시점에서는 CM 버전도 국내에서는 판매하지 않았습니다. 그래서 해외사이트에서 구매해야 했고, 반도체 문제로 인해서 eMMC 용량에 따라 재고도 확실치 않았습니다. 그래서 구매하려면 재고 문의하시고 구매를 진행하셔야 합니다. 1. CM4 Part Number 구별 - 방열판(Heatsink) 부착 전에 간단한 지식 하나 보고 넘어가겠습니다. CM4 모듈 구매 시 확..
안녕하세요. 전자책(ebook)을 가지고 있어서 e-paper 대해서는 알고 있지만, 라즈베리 파이에 연동해서 제어해본 적은 없고, 전원을 끄고도 텍스트를 입력한 글자가 남아 있을까 그리고 터치까지 된다고 하니 궁금해서 테스트해보았습니다. 1. 테스트 환경 - 이번에는 32bit 라즈베리 파이 OS 말고 64bit로 테스트해보았습니다. 앞으로 64bit 운영체제로 바꿔야 할 것 같아서 미리 테스트 삼아해 보았습니다. https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit - 외국 기사(하단 참조 사이트 링크)를 보면 64bit OS로 사용할 경우 성능 향상이 되었다고 나와있어서 한번 경험해보고 싶었습니다. 그리고 기존의..
안녕하세요. 라즈베리파이에 카메라를 장착해서 다른 사람들에게 스트리밍 하려면 몇 가지 방법이 있는데, 그중 한 가지가 RTSP라는 프로토콜로 스트리밍 하는 것입니다. 이전에 MJPEG로 웹상 스트리밍 하는 것도 해보았지만, 품질과 제어 관점에서는 좋지 못했습니다. 그래서 향후 영상을 스트리밍 하기 위해서 테스트로 설치해보았습니다. 1. RTSP 프로토콜이란? 실시간 스트리밍 프로토콜(Real Time Streaming Protocol, RTSP)은 스트리밍 미디어 서버를 제어할 목적으로 엔터테인먼트, 통신 시스템에 사용하도록 설계된 네트워크 제어 프로토콜이다. 이 프로토콜은 종단점(end point)들 간에 미디어 세션을 확립하고 제어하기 위해 사용된다. 미디어 서버의 클라이언트들은 play, recor..
안녕하세요. 라즈베리파이에 vnc 혹은 윈도우 원격 데스크톱으로 원격 접속이 가능하지만 개인이라면 AnyDesk라는 원격 접속 툴을 사용할 수도 있습니다. AnyDesk 회사에서 여러 OS에 접속할 수 있도록 개발하는 듯합니다. 1. 라즈베리파이에 AnyDesk 설치 - 라즈베리 파이에 AnyDesk 프로그램을 설치합니다. pi@raspberrypi:~ $ sudo dpkg -i anydesk_6.1.1-1_armhf.deb 설치 시 다음과 같은 에러가 발생할 수 있습니다. 그럴 때는 추가 패키지를 설치해주고 다시 설치를 시작합니다. dpkg: dependency problems prevent configuration of anydesk: anydesk depends on libminizip1; howe..
안녕하세요. 라즈베리파이 4에 Qt설치를 쉽게 할 것이라 생각했는데, 바로 되지 않아서 해결한 방법 남겨봅니다. 인터넷에 나와 있는 설치 명령어로 바로 설치되면 좋겠지만, 안될 경우 참조하시면 됩니다. 우선 라즈베리파이 최신 OS를 설치한 경우라 가정하였습니다. 1. 라즈베리 파이 최신 버전 설치 https://www.raspberrypi.com/software/operating-systems/ 사이트에서 " Raspberry Pi OS with desktop Release date: October 30th 2021" 버전을 다운하여 테스트하였습니다. (2021-10-30-raspios-bullseye-armhf.zip) 2. Qt 프로그램 설치 - 인터넷 사이트에 보면 아래와 같은 방법으로 설치하면 된..
안녕하세요. 일반적으로 얇은 CMOS 카메라는 줌 기능이 없기 때문에 주로 고정된 거리의 물체를 촬영하게 됩니다. 디지털 줌이 된다고 할 수 있지만, 여기서 말하는 것은 실제 광학줌으로 렌즈의 배율을 조절하는 줌을 말합니다. 그래서 찾아보다 라즈베리파이에 소형 모듈 형태로 만들어 놓은 제품이 있어 확인해보았습니다. 1. PTZ 카메라란 PTZ는 팬(pan), 틸트(tilt), 줌(zoom)의 준말이며 카메라의 동작 옵션을 반영한다. 다른 종류의 카메라들로는 ePTZ 또는 가상 팬-틸트-줌(virtual pan-tilt-zoom, PTZ)이 있으며 고해상도 카메라가 물리적인 카메라 움직임 없이 디지털 방식으로 이미지의 일부분에 줌/패닝을 수행한다. 그런데, 테스트하는 Arducam PTZ 카메라는 Pan과..
안녕하세요. RaspberryPi Pico와 0.96인치 OLED를 연결해서 문자열을 출력하는 것을 해보겠습니다. 그러나 모든 것이 한 번에 잘 되면 문제가 없지만 설정을 잘못했다면 이상하게 에러가 계속 발생할 수 있기 있습니다. 그래서 한번 참조 삼아 보면 좋지 않을까 합니다. 1. 하드웨어 구성 및 핀 연결 - RaspberryPi Pico와 0.96인치 OLED를 I2C핀에 맞게 연결합니다. - I2C0를 사용하여 GP0핀을 SDA로 GP1핀을 SCL로 3.3V 출력 핀과 GND 핀을 연결해줍니다. 2. ssd1306 라이브러리 설치 - "ssd1306"으로 PyPi에서 검색합니다. - micropython-ssd1306를 클릭합니다. 한 후 Install 합니다. - 설치 완료가 되면 목록에 나타..
안녕하세요. RaspberryPi Pico에 연결된 모듈의 I2C 주소를 모를 경우 데이터를 가지고 올 수 없습니다. 만약 데이터 시트를 가지고 있다면 큰 문제가 되지 않지만, 모를 경우 간단한 코드로 확인할 수 있습니다. 1. 하드웨어 구성 및 핀 연결 - 라즈베리 파이 피코와 I2C 모듈인 0.96인치 OLED를 가지고 테스트해보겠습니다. Pico 핀 맵을 보면 하늘색으로 I2C를 사용할 수 있도록 많은 핀에서 지원을 해주고 있습니다. 그래서 원하는 핀에서 연결해서 소프트웨어로 설정하면 가능하다는 것을 알 수 있습니다. - 테스트를 I2C0, I2C1 핀 위치만 주의하시면 됩니다. 여기서는 I2C0를 사용하여 GP0핀과 GP1핀을 이용해보겠습니다. 그리고 3.3V 출력 핀과 GND 핀을 연결해줍니다...
안녕하세요. 라즈베리파이를 유선 네트워크로 사용하여 카메라를 연결해서 모니터링한다고 하면 LAN선도 있어야 하고 전원 선도 별도로 있어야 합니다. 전원선 역시 길게 연결해야 하기 때문에 불편합니다. 그런데 PoE라는 기술을 적용하면 한 선으로 가능하고 어느 정도 거리도 편하게 설치할 수 있습니다. 이번에 라즈베리파이에 부착할 수 있는 형태로 된 PoE HAT 모듈이 있어 테스트해보았습니다. 1. PoE란? PoE( Power over Ethernet )는 Cat. 3 이후의 이더넷 라인에 데이터와 함께 DC 전원을 실어서 보내는 기술이다. IEEE에 의해 표준으로 지정되어 있으며, 802.3af와 802.3at(PoE+라고 불림)라는 두 가지 표준이 규정되어 있다. 약어는 가운데 o를 소문자로 한 PoE..
안녕하세요. 이번에는 생활 속에 볼 수 있는 리모컨을 이용해 보겠습니다. Pioneer600 모듈에는 IR Receiver 센서가 부착되어 있습니다. 이 부품은 집에서 사용하는 TV 리모컨 신호를 받을 수 있는 기능을 합니다. 그럼 한번 IR에 대해서 알아보겠습니다. 1. IR 원리 (1) 적외선(Infrared Ray) 이란 적외선은 가시광선 780㎚보다 긴 파장으로 레이저, 전파 등과 함께 가시광선 밖의 영역으로 구분된다. 적외선은 열적 작용이 강해 열선으로 불리며 가열, 건조, 생체에 대한 온열 효과로 이용된다. 파장의 길이에 따라 분류하면 파장 0.75∼3㎛의 적외선을 근적외선, 3∼25㎛의 것을 적외선, 25㎛ 이상의 것을 원적외선이라 한다. 근적외선은 열작용 외에 사진 작용, 광전 작용, 형광..